標籤:持久化 表示 http bubuko ssi 設定檔 class hash 就是
一、簡介
Consul([?k?nsl],康搜)是註冊中心,服務提供者、服務消費者等都要註冊到Consul中,這樣就可以實現服務提供者、服務消費者的隔離。除了Consul之外,還有Eureka、Zookeeper等類似軟體。consul是儲存服務名稱與IP和連接埠對應關係的伺服器
consul是google開源的一個使用go語言開發的服務發現、組態管理中心服務。內建了服務註冊與發現框 架、分布一致性協議實現、健全狀態檢查、Key/Value儲存、多資料中心方案,不再需要依賴其他工具(比如ZooKeeper等)。服務部署簡單,只有一個可啟動並執行二進位的包。每個節點都需要運行agent,他有兩種運行模式server和client。每個資料中心官方建議需要3或5個server節點以保證資料安全,同時保證server-leader的選舉能夠正確的進行。
@client
CLIENT表示consul的client模式,就是用戶端模式。是consul節點的一種模式,這種模式下,所有註冊到當前節點的服務會被轉寄到SERVER,本身是不持久化這些資訊。
@server
SERVER表示consul的server模式,表明這個consul是個server,這種模式下,功能和CLIENT都一樣,唯一不同的是,它會把所有的資訊持久化的本地,這樣遇到故障,資訊是可以被保留的。
@server-leader
中間那個SERVER下面有LEADER的字眼,表明這個SERVER是它們的老大,它和其它SERVER不一樣的一點是,它需要負責同步註冊的資訊給其它的SERVER,同時也要負責各個節點的健康監測。
@raft
server節點之間的資料一致性保證,一致性協議使用的是raft,而zookeeper用的paxos,etcd採用的也是taft。
@服務發現協議
consul採用http和dns協議,etcd只支援http
@服務註冊
consul支援兩種方式實現服務註冊,一種是通過consul的服務註冊http API,由服務自己調用API實現註冊,另一種方式是通過json個是的設定檔實現註冊,將需要註冊的服務以json格式的設定檔給出。consul官方建議使用第二種方式。
@服務發現
consul支援兩種方式實現服務發現,一種是通過http API來查詢有哪些服務,另外一種是通過consul agent 內建的DNS(8600連接埠),網域名稱是以NAME.service.consul的形式給出,NAME即在定義的服務組態檔中,服務的名稱。DNS方式可以通過check的方式檢查服務。
@服務間的通訊協定
Consul使用gossip協議管理成員關係、廣播訊息到整個叢集,他有兩個gossip pool(LAN pool和WAN pool),LAN pool是同一個資料中心內部通訊的,WAN pool是多個資料中心通訊的,LAN pool有多個,WAN pool只有一個。
二、安裝
consul官網:https://www.consul.io/
1)下載
wget https://releases.hashicorp.com/consul/1.3.0/consul_1.3.0_linux_amd64.zip
2)解壓
unzip consul_1.3.0_linux_amd64.zip
3)拷貝到usr目錄下
mv consul /usr
4)查看是否安裝成功
./consul
5)啟動
./consul agent -dev -ui -node=consul-dev -client=192.168.*.** #虛擬機器ip
6) 後在瀏覽器中輸 http://192.168*.**:8500 就可以訪問了
Centos安裝Consul微服務