consul概述及其内部原理

consul概述:

consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务,consul属于微服务架构的基础设置中用于发现和配置服务的一个工具。

consul的核心功能:

服务发现:consul的某些客户端可以提供一个服务,其他客户端可以使用consul去发现这个服务的提供者。
健康检查:consul客户端可以提供一些健康检查,这些健康检查可以关联到一个指定的服务,比如心跳包的检测。
键值存储:应用实例可以使用consul提供的分层键值存储,比如动态配置,特征标记,协作等。通过HTTP API的方式获取。
多数据中心:consul对多数据中心有非常好的支持。

consul内部原理:

  • consul支持多数据中心,多个数据中心通过Internet互联,同时为了提高通信效率,只有server节点才加入跨数据中心通信。

  • 在单个数据中心中,consul分为server和agent两种节点(所有的节点也被称为agent),server节点保存数据,client负责健康检查,及转发数据请求到server。

  • server节点有一个Leader和多个Follower,Leader节点会将数据同步到Follower,server节点的数量推荐是3个或者5个,在Leader挂掉的时候会启动选举机制产生一个新的Leader。

  • 集群内consul节点通过gossip协议(流言协议)维护成员关系,也就是说每个节点了解集群内现在还有那些节点,这些节点是client还是server。

  • 单个数据中心的流言协议同时使用TCP和UDP通信,并且都使用8301端口,跨数据中心的流言协议也同时使用TCP和UDP通信,端口使用8302。

  • 集群内数据的读写请求既可以直接发送到server,也可以使用RPC转发到server,请求最终会到达Leader节点。

  • 在允许轻微陈旧的情况下,读请求也可以在普通的server节点内完成,集群内数据的读写和复制都是通过TCP的8300端口完成的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值