1. 程式人生 > 其它 >【高可用】網際網路架構

【高可用】網際網路架構

參考:https://blog.csdn.net/weixin_41385912/article/details/122817029

高可用(High availability,即 HA)的主要目的是為了保障「業務的連續性」,即在使用者眼裡,業務永遠是正常(或者說基本正常)對外提供服務的。高可用主要是針對架構而言,那麼要做好高可用,就要首先設計好架構,第一步我們一般會採用分層的思想將一個龐大的 IT 系統拆分成為應用層,中介軟體,資料儲存層等獨立的層,每一層再拆分成為更細粒度的元件,第二步就是讓每個元件對外提供服務,畢竟每個元件都不是孤立存在的,都需要互相協作,對外提供服務才有意義。

要保證架構的高可用,就要保證架構中所有元件以及其對外暴露服務都要做高可用設計,任何一個元件或其服務沒做高可用,都意味著系統存在風險。

網際網路部署架構

  

接入層:    主要由 F5 硬體或 LVS 軟體來承載所有的流量入口

反向代理層:  Nginx,主要負責根據 url 來分發流量,限流等

閘道器:     主要負責流控,風控,協議轉換等

站點層:    主要負責呼叫會員,促銷等基本服務來裝配 json 等資料並返回給客戶端

基礎 service:  其實與站點層都屬於微服務,是平級關係,只不過基礎 service 屬於基礎設施,能被上層的各個業務層 server 呼叫而已

儲存層:    也就是 DB,如 MySQL,Oracle 等,一般由基礎 service 呼叫返回給站點層

中介軟體:    ZK,ES,Redis,MQ 等,主要起到加速訪問資料等功能,在下文中我們會簡單介紹下各個元件的作用

接入層:

  

只有 master 在工作(即此時的 VIP 在 master 上生效),另外一個 backup 在 master 宕機之後會接管 master 的工作,

在主備機器上都裝上 keepalived 軟體,啟動後就會通過心跳檢測彼此的健康狀況,一旦 master 宕機,keepalived 會檢測到,從而 backup 自動轉成 master 對外提供服務,此時 VIP 地址(即圖中的 115.204.94.139)即在 backup 上生效,也就是我們常說的「IP漂移」,通過這樣的方式即解決了 LVS 的高可用。

keepalived 的心跳檢測主要通過傳送 ICMP 報文,或者利用 TCP 的埠連線和掃描檢測來檢測的,同樣的,它也可以用來檢測 Nginx 暴露的埠,這樣的話如果某些 Nginx 不正常 Keepalived 也能檢測到並將其從 LVS 能轉發的服務列表中剔出。