
一个Consul集群可以有多个数据中心,每个数据中心运行一个Consul Server集群,server数目一般在3-5个,因为Consul是强一致性的,server的数目太多在同步数据的时候会产生性能问题。client的数目没有限制,可以成千上万个。
(2)将解压后的consul文件移动到/usr/local/bin目录下,执行consul命令查看安装情况
(3)修改环境变量使consul安装永久生效
(4)启动集群
准备3台节点服务器:
192.168.203.130 consul1
192.168.203.131 consul2
192.168.203.132 consul3
启动consul1
启动另外两个节点(192.168.203.131,192.168.203.132):
分别将consul2,consul3加入到集群中
至此整个集群搭建完成,执行consul operator raft list-peers
命令查看集群状态,如下图
遇到的坑:
在执行consul join 192.168.203.130时会遇到如下错误:
Failed to join 192.168.203.130:dial tcp 192.168.203.130:8301:connect:no route to host
解决办法:
分别将8301,8300,8500端口加入防火墙就好了
(5)web页面查看
consul使用来做服务发现,提供了开箱即用的功能,这里记录下遇到的问题和使用总结
/v1/agent/checks : 返回本地agent注册的所有检查(包括配置文件和HTTP接口)
/v1/agent/services : 返回本地agent注册的所有 服务
/v1/agent/members : 返回agent在集群的gossip pool中看到的成员
/v1/agent/self : 返回本地agent的配置和成员信息
/v1/agent/join/<address>: 触发本地agent加入node
/v1/agent/force-leave/<node>>: 强制删除node
/v1/agent/check/register : 在本地agent增加一个检查项,使用PUT方法传输一个json格式的数据
/v1/agent/check/deregister/<checkID>: 注销一个本地agent的检查项
/v1/agent/check/pass/<checkID>: 设置一个本地检查项的状态为passing
/v1/agent/check/warn/<checkID>: 设置一个本地检查项的状态为warning
/v1/agent/check/fail/<checkID>: 设置一个本地检查项的状态为critical
/v1/agent/service/register : 在本地agent增加一个新的服务项,使用PUT方法传输一个json格式的数据
/v1/agent/service/deregister/<serviceID>: 注销一个本地agent的服务项
/v1/catalog/register : Registers a new node, service, or check
/v1/catalog/deregister : Deregisters a node, service, or check
/v1/catalog/datacenters : Lists known datacenters
/v1/catalog/nodes : Lists nodes in a given DC
/v1/catalog/services : Lists services in a given DC
/v1/catalog/service/<service>: Lists the nodes in a given service
/v1/catalog/node/<node>: Lists the services provided by a node
/v1/health/node/<node>: 返回node所定义的检查,可用参数?dc=
/v1/health/checks/<service>: 返回和服务相关联的检查,可用参数?dc=
/v1/health/service/<service>: 返回给定datacenter中给定node中service
/v1/health/state/<state>: 返回给定datacenter中指定状态的服务,state可以是"any", "unknown", "passing", "warning", or "critical",可用参数?dc=
https://www.consul.io/docs/guides/external.html
curl -X PUT -d '{"Datacenter": "dc1", "Node": "google",
"Address": " www.google.com ",
"Service": {"Service": "search", "Port": 80}}'
http://127.0.0.1:8500/v1/catalog/register
删除外部服务:
curl -X PUT -d '{"Datacenter": "dc1", "Node": "google"}' http://127.0.0.1:8500/v1/catalog/deregister
curl -X PUT -d '{"id": "3d-virtual-number-ykt-com","name": "3d-virtual-number-ykt-com","address": " api.1ketong.com ","port":80}' http://localhost:8500/v1/agent/service/register
curl -X PUT http://localhost:8500/v1/agent/service/deregister/settlerconsumer-service@10.9.153.21
nohup ./consul agent -retry-join=10.10.210.128 -config-file /usr/local/consul/config.json >/data/logs/consul.log &
consul 依据需要扩容缩容的时候即使服务器为双数,系统也能正常运行
扩容: consul join consul_server_ip
扩容后需要等待数据从leader到新fllow的同步
缩容:consul leave
使用 consul operator raft list-peers查看server信息,确认 *** 作是否成功
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)