前文構(gòu)建的都是單節(jié)點(diǎn)的Config Server,本節(jié)來討論如何構(gòu)建高可用的Config Server集群,包括Config Server的高可用依賴Git倉庫的高可用以及RabbitMQ的高可用。
創(chuàng)新互聯(lián)公司為企業(yè)級客戶提高一站式互聯(lián)網(wǎng)+設(shè)計(jì)服務(wù),主要包括成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、成都app軟件開發(fā)、成都小程序開發(fā)、宣傳片制作、LOGO設(shè)計(jì)等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗(yàn)豐富的經(jīng)驗(yàn),可以確保每一個作品的質(zhì)量和創(chuàng)作周期,同時(shí)每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。
先來討論Git倉庫的高可用。
由于配置內(nèi)容存儲在Git倉庫中,所以要想實(shí)現(xiàn)Config Server的高可用,必須有一個高可用的Git倉庫。有兩種方式可以實(shí)現(xiàn)Git倉庫的高可用。
以 GitLab 為例,讀者可參照官方文檔搭建高可用的 GitLab:
Spring Cloud Config使用Spring Cloud Bus實(shí)現(xiàn)配置批量刷新。而由于Spring Cloud Bus依賴RabbitMQ(當(dāng)然也可使用其他MQ,例如Kafka或者RocketMQ),所以RabbitMQ的高可用也是必不可少的。
搭建高可用RabbitMQ的資料,讀者可詳見:
本節(jié)來討論如何實(shí)現(xiàn)Config Server自身的高可用。筆者分兩種場景進(jìn)行討論。
對于這種情況,Config Server的高可用可借助一個負(fù)載均衡器來實(shí)現(xiàn),如圖9-6所示。
如圖9-6,各個微服務(wù)將請求發(fā)送到負(fù)載均衡器,負(fù)載均衡器將請求轉(zhuǎn)發(fā)到其代理的其中一個Config Server節(jié)點(diǎn)。這樣,就可以實(shí)現(xiàn)Config Server的高可用。
這種情況下,Config Server的高可用相對簡單,只須將多個Config Server節(jié)點(diǎn)注冊到Eureka Server上,即可實(shí)現(xiàn)Config Server的高可用。架構(gòu)如圖9-7所示。