consul叢集搭建
consul的基本介紹就不多說,官方文件肯定比我說的好,英語渣渣就不獻醜了。這裡只分享consul叢集部署和使用過程中的步驟和遇到的坑。(本文有很多抄襲的地方,但是忘了從哪裡copy的了,都是記在我的onenote上的。。。。。如果有作者看見,請聯絡我,我加上鍊接,非常感謝)
先來一張官網的圖震貼,consul裡面都是叫agent,但是區分server模式和client模式
我的理解,server作為服務註冊的中心伺服器,而client只是作為支撐(感覺更多的是分攤server端的壓力,因為官方建議是在每臺應用伺服器上裝一個client),不儲存任何資料和狀態,用完就廢棄
server端建議最少3個節點,當然你也可以直接單點跑(你也可以在生產環境用dev模式跑,反正掛了不要來找我就行)
8500 埠基於HTTP協議,用於API介面或WEB UI訪問
8600 埠作為DNS伺服器,使我們可以通過節點名查詢節點資訊
8400 埠rpc通訊???
TCP/UDP/8301 埠用於單個數據中心所有節點之間的互相通訊,即對 LAN 池(包含位於同一區域網或資料中心上的節點)資訊的同步。它使得整個資料中心能夠自動發現伺服器地址,分散式檢測節點故障,事件廣播(如領導選舉事件)。
TCP/UDP/8302 埠用於單個或多個數據中心之間的伺服器節點的資訊同步,即對 WAN 池(只包含 server 的 WAN Gossip 池,這些伺服器主要位於不同的資料中心,通常通過網際網路或廣域網進行通訊。)資訊的同步。它針對網際網路的高延遲進行了優化,能夠實現跨資料中心請求。
TCP/8300 埠用於伺服器節點。client端通過該埠 RPC 協議呼叫server端節點。
本文的命令都是用的docker原生命令,沒有采用docker-compose檔案啟動的形式,所以有些命令可能會非常長,我會對用到的引數做詳細解釋
假設有3臺伺服器:
172.16.0.123
172.16.0.124
172.16.0.125