天天看點

三高(高并發、高性能、高可用)問題如何解?

金三銀四招聘季,很多小夥伴最近都在經曆着或者準備着面試。而在現在的網際網路企業的大部分面試中,始終圍繞着網際網路的三高架構來展開。

網際網路三高架構:高并發、高性能、高可用,簡稱三高(3H)

很多時候,面試官一句:在工作中如何處理高并發可能就結束了整場面試!

那麼,建構一個三高的系統,到底可以從哪些方面下手呢。

小編為您總結了一下,大概可以從以下方面入手:橫向分層、縱向分割、分布式化、叢集化、使用緩存、使用異步模式、使用備援、自動化(釋出、部署、監控)。

具體來說,可以在不同層次常用的技術有:

前端

  • 浏覽器優化技術:合理布局,頁面緩存,減少http請求數,頁面壓縮,減少 cookie 傳輸。
  • CDN
  • DNS負載均衡
  • 動靜分離
  • 動态圖檔獨立提供服務
  • 反向代理

應用層架構

  • 業務拆分
  • 負載均衡
  • 虛拟化伺服器、容器化
  • 無狀态(以及分布式 Session)
  • 分布式緩存
  • 異步、事件驅動架構、消息隊列
  • 多線程
  • 動态頁面靜态化

服務層架構

  • 分布式微服務(分級管理,逾時設定,異步調用,服務降級,幂等性設計。)
  • 同應用層架構

存儲層架構

  • DFS
  • 關系資料庫路由
  • No SQL 資料庫
  • 資料同步
  • 資料備援

安全架構

  • Web攻擊(XSS、Sql Injection)
  • 資料加密
  • 密鑰管理

釋出、運維

  • 自動化測試與釋出
  • 灰階釋出
  • 浏覽器資料采集
  • 伺服器業務資料采集
  • 伺服器性能資料采集
  • 系統監控
  • 系統報警

機房

  • 散熱、省電、定制伺服器

以上,就是建設網際網路三高架構可能涉及到的知識點,很多人可能并沒有辦法考慮的很全面。(參考資料:https://www.cnblogs.com/zgynhqf/p/9853591.html)

很多同學在技術生涯最初幾年都會沉浸在業務開發中,忽視了對系統知識的梳理和技術視野的擴充。日複一日,導緻很多同學就以為這就是技術的全部,同時在重複的體力勞動中也喪失了對技術細節的深入探讨。

技術的突破需要依賴業務場景的需求和自身刻意的規劃學習,二者缺一不可,但前者是機會,往往不是自己能完全把控的,如果在自己工作中沒有實踐場景,最好的辦法就是系統的學習與梳理,為自己制定一個不同時間段的發展道路,待機會來臨時就能一展身手。