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 「軟體老王」,如果覺得還可以的話,關注下唄,後續更新秒知!歡迎討論區、同名公眾號留言交流