微服務時代之網關及註冊中心高可用架構設計
- 2019 年 10 月 3 日
- 筆記
1. 微服務關係架構圖
簡要說明:
(1)所有應用或者服務要想對外提供服務(包括網關),必須首先到註冊中心進行註冊。
(2)所有訪問通過服務網關進行訪問,然後由服務網關路由到對應服務中心進行交互訪問。
2. 網關及註冊中心高可用架構圖
2.1 springcloud eureka高可用方案
由上圖可以看出,註冊中心與路由很容易成為單點故障,軟件老王以前使用springcloud eureka高可用架構方案:
(1)euraka部署成集群模式,相互註冊,通過心跳策略同步註冊信息;
(2)客戶端註冊的時候,可以寫多個註冊中心地址,假如第一個註冊中心出問題,會自動到第二個中心去註冊。
defaultZone: http://10.192.168.12:8761/eureka/,http://10.192.168.13:8761/eureka/
當時網關沒有做高可用方案。
2.2 網關高可用架構方案
2.2.1 軟件老王採用的技術方案是:採用keepalived+nginx實現網關的高可用,架構圖如下:
簡要說明:
(1)通過nginx來實現gateway集群部署;
(2)通過keepalived虛擬ip,當服務器1宕機後,虛擬ip會自動切換到服務器2上,來保證nginx的高可用。
2.2.2 業務中台實際部署
因服務器資源有限,軟件老王目前有3台服務器資源,分別為:10.192.168.11、10.192.168.12、10.192.168.13
簡要說明:
網關統一使用vip(10.192.168.21)進行訪問,21默認會路由到10.192.168.11服務器上(11出故障的話,會自動謝歡到12服務器上),11上的nginx默認輪詢調用gateway服務(11與12上啟動了6個服務),進而實現高可用。
2.3 註冊中心高可用方案
2.3.1 技術方案
軟件老王經過技術選型後,這次的註冊中心選擇的是阿里巴巴的nacos,nacos官方已經給了高可用部署方案,nacos與cloud的euraka還有一個區別,客戶端不能配置兩個註冊中心,官方給的架構圖是:
2.3.2 軟件老王實際部署的註冊中心(nacos)架構圖
其中10.192.168.22為vip,案例演示:gateway默認啟動了demo服務(/demo),可進行演示使用。
I』m 「軟件老王」,如果覺得還可以的話,關注下唄,後續更新秒知!歡迎討論區、同名公眾號留言交流!