架構技術棧

互聯網技術演進的模式

互聯網業務千差萬別,但由於它們具有“規模決定一切”的相同點,其發展路徑也基本上是一致的。互聯網業務發展一般分爲幾個時期:初創期、發展期、競爭期、成熟期。

不同時期的差別主要體現在兩個方面:複雜性、用戶規模。

業務複雜性

互聯網業務發展第一個主要方向就是“業務越來越複雜”,我們來看看不同時期業務的複雜性的表現。

初創期
發展期
競爭期
成熟期
用戶規模

互聯網業務的發展第二個主要方向就是“用戶量越來越大”。互聯網業務的發展會經歷“初創期、發展期、競爭期、成熟期”幾個階段,不同階段典型的差別就是用戶量的差別,用戶量隨着業務的發展而越來越大。

用戶量增大對技術的影響主要體現在兩個方面:性能要求越來越高、可用性要求越來越高。

量變到質變

在這裏插入圖片描述

負載均衡

DNS 用於實現地理級別的負載均衡,而 Nginx、LVS、F5 用於同一地點內機器級別的負載均衡。其中 Nginx 是軟件的 7 層負載均衡,LVS 是內核的 4 層負載均衡,F5 是硬件的 4 層負載均衡。

軟件和硬件的區別就在於性能,硬件遠遠高於軟件,

Ngxin 的性能是萬級,一般的 Linux 服務器上裝個 Nginx 大概能到 5 萬 / 秒;

LVS 的性能是十萬級,沒有具體測試過,據說可達到 80 萬 / 秒;

F5 性能是百萬級,從 200 萬 / 秒到 800 萬 / 秒都有。硬件雖然性能高,但是單臺硬件的成本也很高,一臺最便宜的 F5 都是幾十萬,但是如果按照同等請求量級來計算成本的話,實際上硬件負載均衡設備可能會更便宜,例如假設每秒處理 100 萬請求,用一臺 F5 就夠了,但用 Nginx,可能要 20 臺,這樣折算下來用 F5 的成本反而低。

因此通常情況下,如果性能要求不高,可以用軟件負載均衡;如果性能要求很高,推薦用硬件負載均衡。

4 層和 7 層的區別就在於協議和靈活性。Nginx 支持 HTTP、E-mail 協議,而 LVS 和 F5 是 4 層負載均衡,和協議無關,幾乎所有應用都可以做,例如聊天、數據庫等。

目前很多雲服務商都已經提供了負載均衡的產品,例如阿里雲的 SLB、UCloud 的 ULB 等,中小公司直接購買即可。

用戶管理

單點登錄(SSO)

稍微大一點的互聯網業務,肯定會涉及多個子系統,這些子系統不可能每個都管理這麼龐大的用戶,由此引申出用戶管理的第一個目標:單點登錄(SSO),又叫統一登錄。單點登錄的技術實現手段較多,例如 cookie、JSONP、token 等,目前最成熟的開源單點登錄方案當屬 CAS,其架構如下(https://apereo.github.io/cas/4.2.x/planning/Architecture.html )

第三方應用接入

除此之外,當業務做大成爲了平臺後,開放成爲了促進業務進一步發展的手段,需要允許第三方應用接入,由此引申出用戶管理的第二個目標:授權登錄。現在最流行的授權登錄就是 OAuth 2.0 協議,基本上已經成爲了事實上的標準,如果要做開放平臺,則最好用這個協議,私有協議漏洞多,第三方接入也麻煩。

在這裏插入圖片描述

消息推送

消息推送根據不同的途徑,分爲短信、郵件、站內信、App 推送。除了 App,不同的途徑基本上調用不同的 API 即可完成,技術上沒有什麼難度。例如,短信需要依賴運營商的短信接口,郵件需要依賴郵件服務商的郵件接口,站內信是系統提供的消息通知功能。

App 目前主要分爲 iOS 和 Android 推送,iOS 系統比較規範和封閉,基本上只能使用蘋果的 APNS;但 Android 就不一樣了,在國外,用 GCM 和 APNS 差別不大;但是在國內,情況就複雜多了:首先是 GCM 不能用;其次是各個手機廠商都有自己的定製的 Android,消息推送實現也不完全一樣。因此 Android 的消息推送就五花八門了,大部分有實力的大廠,都會自己實現一套消息推送機制,例如阿里雲移動推送、騰訊信鴿推送、百度雲推送;也有第三方公司提供商業推送服務,例如友盟推送、極光推送等。

存儲雲、圖片雲

存儲雲和圖片雲通常的實現都是“CDN + 小文件存儲”
只有服務器提供文件存儲:FastDfs

微服務

在這裏插入圖片描述
微服務架構最佳實踐 - 基礎設施篇
自動化測試
自動化部署
配置中心
接口框架
API 網關
服務發現。服務發現主要有兩種實現方式:自理式和代理式。
服務路由
服務容錯
服務監控
服務跟蹤
服務安全

原文轉載

https://blog.csdn.net/zhangbijun1230/article/category/7519360/5

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章