一篇帶給你consul簡介及安裝
簡介
consul提供了服務注冊與發(fā)現(xiàn)框 架、分布一致性協(xié)議實現(xiàn)、健康檢查、KV存儲、多數(shù)據(jù)中心方案等功能。
- 一致性:采用的是RAFT算法保證分布式節(jié)點的一致性。
- 服務發(fā)現(xiàn):采用http和dns協(xié)議。
- 服務注冊:1、通過http API,由服務自己調(diào)用API實現(xiàn)注冊,2、通過JSON配置文件實現(xiàn)注冊,將需要注冊的服務以JSON格式的配置文件給出。
- 服務間的通訊協(xié)議:使用gossip協(xié)議管理成員關(guān)系、廣播消息到整個集群
角色
1、client
客戶端模式:將所有注冊到當前節(jié)點的服務會被轉(zhuǎn)發(fā)到server,自己是不持久化數(shù)據(jù)。
2、server
server模式:功能和客戶端模式一樣,不同的是會把所有的信息持久化的本地。
3、server-leader
server leader模式:其它server的領(lǐng)導者,和其它server不一樣的是需要負責同步注冊的信息給其它的server,同時也要負責各個節(jié)點的健康監(jiān)測。
安裝
CentOS 上可以直接使用yum進行安裝
- sudo yum install -y yum-utils
- sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
- sudo yum -y install consul
也可以直接下載二進制包,解壓就可以直接使用。
- tar zxvf consul_1.9.6_linux_amd64.zip -C /usr/local/bin/
啟動服務(單節(jié)點)
- nohup consul agent -server -data-dir=/data/consul-data/ -node=node1 -bind=0.0.0.0 -bootstrap-expect=1 -client=0.0.0.0 -ui > /data/consul-data/consul.log &
- –server 指定server agent
- –data-dir l數(shù)據(jù)存儲路徑
- –bootstrap-expect 期望的server節(jié)點數(shù)目,consul一直等到指定sever數(shù)目才會引導整個集群
- –bind:該地址用來在集群內(nèi)部的通訊,集群內(nèi)的所有節(jié)點到地址都必須是可達的,默認是0.0.0.0
- –node:節(jié)點在集群中的名稱,在一個集群中必須是唯一的,默認是該節(jié)點的主機名
- –ui: web的管理ui,查看服務和節(jié)點,可以通過訪問:8500端口要訪問UI
- –client:提供HTTP、DNS、RPC等服務,默認是127.0.0.1,不對外提供服務,如果需要則改成0.0.0.0
單節(jié)點擴容
- nohup consul agent -bind=0.0.0.0 -client=0.0.0.0 -data-dir=/data/consul-data/ -node=node2 -join=192.168.122.100 > /data/consul-data/consul.log 2>&1 &
192.168.122.100就是剛才那臺服務器的IP
總結(jié)
consul部署很方便,可以試試。