consul工作原理

目录

个人原创总结之 consul 原理

consul服务发现和注册

服务product启动时,会将自己的ip/port告知consul,consul将他们进行注册,每隔一段时间会将服务product进行健康检测

consul服务调用

consumer请求product时,会先去consul的temp table去取得健康的product的信息,temp table注册了一系列健康节点信息

工作模式图

在这里插入图片描述
首先绿色部分代表consul集群,有sever,有leader。
然后server4和server5通过consul client注册了serverA、B、C,两台都有注册,避免了一个单独服务故障的问题,consul client通过rpc的方式再把各个server的信息注册到consul server。

consul 核心 agent组件

以守护进程的方式注册在consul节点上,每个agent各自维护自己的服务集合节点。Agent 分为 client和server两个角色,client将ip dns信息转发给server,server记录了ip、dns信息。每个节点的server数目推荐是3个或者5个,通过raft算法保证数据一致性。
(Raft算法:我们不可能要求所有服务器100%都达成一致状态,只要超过半数的大多数服务器达成一致就可以了,假设有N台服务器,N/2 +1 就超过半数,代表大多数了。)

consul 通讯方式

rpc:Gossip流言协议
http api:用于服务发现、健康检测
dns查询:用于服务查询,可以cosul提供的DNS接口来获取当前的服务“web”对应的可用节点

consul的优势

1)Consul使用Raft算法来保证一致性,比复杂的Paxos算法更直接,相比较而言zookeeper采用的是Paxos,而etcd使用的则是Raft;
2)Consul支持多数据中心,内外网的服务采用不同的端口进行监听,多数据中心集群可以避免单数据中心的单点故障,而其部署则需要考虑网络延迟、分片等情况等。zookeeper和etcd均不提供多数据中心功能的支持;
3)Consul支持健康检查,etcd不提供此功能;
4)Consul支持http和dns协议接口,zookeeper的集成较为复杂,etcd只支持http协议;
5)Consul官方提供web管理界面,etcd无此功能。

consul的使用场景

1)用来做注册中心,注册后可以用consul的dns、http接口查询,consul支持健康检测
2)提供key-value存储功能,并且能将变动迅速地通知出去。比如:动态生成nginx和haproxy配置文件、SaaS应用的配置共享等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值