consul 是一个CS 模式的软件,生产环境下一个集群中建议准备3~5个节点运行服务模式的consul,其他节点运行客户端模式
配置
角色 | IP |
---|---|
server1 | 192.168.31.41 |
server2 | 192.168.31.42 |
server3 | 192.168.31.43 |
client1 | 192.168.31.44 |
client2 | 192.168.31.45 |
定义服务
分别在44、45上配置服务/etc/consul.d/myservice4.json、/etc/consul.d/myservice5.json,内容如下:
myservice4.json
{
"service":{
"name":"myservice4",
"tags":["dev4"],
"port":80
}
}
myservice5.json
{
"service":{
"name":"myservice5",
"tags":["dev5"],
"port":80
}
}
启动server
consul agent -server -bootstrap-expect=3 -data-dir=/tmp/consul -node=server1 -bind=192.168.31.41
consul agent -server -bootstrap-expect=3 -data-dir=/tmp/consul -node=server2 -bind=192.168.31.42
consul agent -server -bootstrap-expect=3 -data-dir=/tmp/consul -node=server3 -bind=192.168.31.43
- server 以服务模式运行
- node 节点名称
- bind 指定监听地址,用于多网卡服务器
- bootstrap-expect额外的服务模式的节点数量
- config-dir 配置文件目录
启动client
consul agent -data-dir=/tmp/consul -config-dir=/etc/consul.d -node=client1 -bind=192.168.31.44
consul agent -data-dir=/tmp/consul -config-dir=/etc/consul.d -node=client2 -bind=192.168.31.45
加入集群
首先在leader节点上添加,然后在任意加入集群上的节点添加
consul join 192.168.31.42
consul join 192.168.31.43
consul join 192.168.31.44
consul join 192.168.31.45
查看集群成员
查看服务
在任意一台agent(包括server和client)上通过一下命令可以查看到分布在不同client上的服务,实现服务发现的功能
curl http://localhost:8500/v1/catalog/service/myservice5 | jq
查到的结果:
网友评论