分布式服务发现与配置之Consul
原创
©著作权归作者所有:来自51CTO博客作者zlixing的原创作品,请联系作者获取转载授权,否则将追究法律责任
一、什么是consul
1、Consul 是 HashiCorp 公司推出的开源软件,用于实现分布式系统的服务发现与配置。
Consul 是分布式的、高可用的、 可横向扩展的
2、官方网站:
3、Consul 集群间使用了 Gossip 协议通信和 raft 一致性算法
[安装]
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
验证是否安装完成
三台服务器上都有进行安装
创建数据目录
mkdir -p /data/consul-data
chown -R consul:consul /data/consul-data
[配置文件]
vim /etc/consul.d/server.json
第一台:
{
"data_dir": "/data/consul-data/",
"log_level": "INFO",
"node_name": "server-1",
"server": true,
"bootstrap_expect": 2,
"client_addr": "0.0.0.0",
"bind_addr": "172.18.10.1"
}
第二台: 修改node_name,bind_addr
{
"data_dir": "/data/consul-data/",
"log_level": "INFO",
"node_name": "server-2",
"server": true,
"bootstrap_expect": 2,
"client_addr": "0.0.0.0",
"bind_addr": "172.18.10.2"
}
第三台:
{
"data_dir": "/data/consul-data/",
"log_level": "INFO",
"node_name": "server-3",
"server": true,
"ui": true,
"bootstrap_expect": 2,
"client_addr": "0.0.0.0",
"bind_addr": "172.18.10.3"
}
对应的命令:
nohup /usr/local/soft/consul agent -server -bind=172.17.0.2 -client=0.0.0.0 -bootstrap-expect=2 -data-dir=/data/consul/da -node=server-2 >/dev/null 2>&1 &
-server:以server身份启动
-bootstrap-expect=2:集群要求的最少server数量
-bind:监听的ip
-client:客户端ip,0.0.0.0表示不限制客户端ip
-data-dir:指定存放数据的目录
-node:指定节点id,注意:同一集群内节点id不允许重复
-ui: 允许访问web ui
添加systemctl服务管理
vim /lib/systemd/system/consul.service
如果是使用yum安装的,已经存在该服务
[Unit]
Description="HashiCorp Consul - A service mesh solution"
Documentation=https://www.consul.io/
Requires=network-online.target
After=network-online.target
ConditionFileNotEmpty=/etc/consul.d/consul.hcl
[Service]
EnvironmentFile=-/etc/consul.d/consul.env
User=consul
Group=consul
ExecStart=/usr/bin/consul agent -config-dir=/etc/consul.d/
ExecReload=/bin/kill --signal HUP $MAINPID
KillMode=process
KillSignal=SIGTERM
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
[启动服务]
systemctl start consul.service
[操作]
# 查看版本
consul verion
# 查看当前节点的信息
consul info
# 查看consul集群成员数量
consul members
# 退出集群
consul leave