Zuul的高可用非常關鍵,因為外部請求到后端微服務的流量都會經過Zuul。故而在生產環境中,我們一般都需要部署高可用的Zuul以避免單點故障。
筆者分兩種場景討論Zuul的高可用。
Zuul客戶端也注冊到了Eureka Server上
這種情況下,Zuul的高可用非常簡單,只需將多個Zuul節點注冊到Eureka Server上,就可實現Zuul的高可用。此時,Zuul的高可用與其他微服務的高可用沒什么區別。
Zuul高可用架構圖
當Zuul客戶端也注冊到Eureka Server上時,只需部署多個Zuul節點即可實現其高可用。Zuul客戶端會自動從Eureka Server中查詢Zuul Server的列表,並使用Ribbon負載均衡地請求Zuul集群。
Zuul客戶端未注冊到Eureka Server上
現實中,這種場景往往更常見,例如,Zuul客戶端是一個手機APP——我們不可能讓所有的手機終端都注冊到Eureka Server上。這種情況下,我們可借助一個額外的負載均衡器來實現Zuul的高可用,例如Nginx、HAProxy、F5等。
Zuul高可用架構圖
Zuul客戶端將請求發送到負載均衡器,負載均衡器將請求轉發到其代理的其中一個Zuul節點。這樣,就可以實現Zuul的高可用。
轉載自:http://www.itmuch.com/spring-cloud/zuul/zuul-ha/