金三銀四招聘季,很多小夥伴最近都在經歷著或者準備著面試。而在現在的互聯網企業的大部分面試中,始終圍繞著互聯網的三高架構來展開。
互聯網三高架構:高併發、高性能、高可用,簡稱三高(3H)
很多時候,面試官一句:在工作中如何處理高併發可能就結束了整場面試!
那麼,構建一個三高的系統,到底可以從哪些方面下手呢。
小編為您總結了一下,大概可以從以下方面入手:橫向分層、縱向分割、分佈式化、集群化、使用緩存、使用異步模式、使用冗餘、自動化(發佈、部署、監控)。
具體來說,可以在不同層次常用的技術有:
前端
- 瀏覽器優化技術:合理佈局,頁面緩存,減少http請求數,頁面壓縮,減少 cookie 傳輸。
- CDN
- DNS負載均衡
- 動靜分離
- 動態圖片獨立提供服務
- 反向代理
應用層架構
- 業務拆分
- 負載均衡
- 虛擬化服務器、容器化
- 無狀態(以及分佈式 Session)
- 分佈式緩存
- 異步、事件驅動架構、消息隊列
- 多線程
- 動態頁面靜態化
服務層架構
- 分佈式微服務(分級管理,超時設置,異步調用,服務降級,冪等性設計。)
- 同應用層架構
存儲層架構
- DFS
- 關係數據庫路由
- No SQL 數據庫
- 數據同步
- 數據冗餘
安全架構
- Web攻擊(XSS、Sql Injection)
- 數據加密
- 密鑰管理
發佈、運維
- 自動化測試與發佈
- 灰度發佈
- 瀏覽器數據採集
- 服務器業務數據採集
- 服務器性能數據採集
- 系統監控
- 系統報警
機房
- 散熱、省電、定製服務器
以上,就是建設互聯網三高架構可能涉及到的知識點,很多人可能並沒有辦法考慮的很全面。
很多同學在技術生涯最初幾年都會沉浸在業務開發中,忽視了對系統知識的梳理和技術視野的擴展。日復一日,導致很多同學就以為這就是技術的全部,同時在重複的體力勞動中也喪失了對技術細節的深入探討。
技術的突破需要依賴業務場景的需求和自身刻意的規劃學習,二者缺一不可,但前者是機會,往往不是自己能完全把控的,如果在自己工作中沒有實踐場景,最好的辦法就是系統的學習與梳理,為自己制定一個不同時間段的發展道路,待機會來臨時就能一展身手。
給大家分享一些免費的資料,可以在自己的業餘時間通過學習的方式彌補自己在實踐方面的不足,資料獲取方式:關注我,後臺私信“資料”即可獲取。
該資料包中主要包括「Java開發參考書籍」、「Java進階架構資料」「Java開發學習圖譜」等內容,全方位擴充你的知識體系。
閱讀更多 Java高級互聯網架構 的文章