共计 1357 个字符,预计需要花费 4 分钟才能阅读完成。
导读 | consul 提供了服务注册与发现框 架、分布一致性协议实现、健康检查、KV 存储、多数据中心方案等功能。 |
简介
consul 提供了服务注册与发现框 架、分布一致性协议实现、健康检查、KV 存储、多数据中心方案等功能。
- 一致性:采用的是 RAFT 算法保证分布式节点的一致性。
- 服务发现:采用 http 和 dns 协议。
- 服务注册:1、通过 http API,由服务自己调用 API 实现注册,2、通过 JSON 配置文件实现注册,将需要注册的服务以 JSON 格式的配置文件给出。
- 服务间的通讯协议:使用 gossip 协议管理成员关系、广播消息到整个集群
角色
1、client
客户端模式:将所有注册到当前节点的服务会被转发到 server,自己是不持久化数据。
2、server
server 模式:功能和客户端模式一样,不同的是会把所有的信息持久化的本地。
3、server-leader
server leader 模式:其它 server 的领导者,和其它 server 不一样的是需要负责同步注册的信息给其它的 server,同时也要负责各个节点的健康监测。
安装
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/
启动服务 (单节点)
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 数据存储路径
- –bootstrap-expect 期望的 server 节点数目,consul 一直等到指定 sever 数目才会引导整个集群
- –bind:该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是 0.0.0.0
- –node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名
- –ui:web 的管理 ui, 查看服务和节点,可以通过访问:8500 端口要访问 UI
- –client:提供 HTTP、DNS、RPC 等服务,默认是 127.0.0.1, 不对外提供服务,如果需要则改成 0.0.0.0
单节点扩容
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
总结
consul 部署很方便,可以试试。
正文完
星哥玩云-微信公众号