consul 工作原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了consul 工作原理相关的知识,希望对你有一定的参考价值。

参考技术A console 基本组成:

数据中心:一般说数据中心都是多中心,即数据分散存储,分摊压力和容易扩容,数据中心之间是隔离的,但是可以网络交互,单个数据中心内部是局域网的通信,多个数据中心之间可以通过网络交互来实现当客户端要查找的数据在本数据中心不存在时,会向其他的数据中心发起请求来查找数据再返回客户端

console有两种运行模式,client和server

client:接收并转发(rpc)到leader;服务健康检查

server:存储数据和数据决策,多个server会有一个leader和多个follower

集群内的数据读写都是通过tcp的8300端口完成(这是consul集群对外提供的api);一般情况下读请求也可以在非leader的server中完成。

集群的server节点之间使用raft协议来实现强一致性

服务注册与服务发现的基本原理图如下:

具体:

1.应用服务将注册信息通过http api(8500端口) 发送给consul集群的client(也可以通过consul配置文件的方式)

2.consul的client是无状态的,他通过rpc将注册信息发给consul的leader server

3.leader server 通过raft协议来同步不同注册的服务信息

4.调用服务调用consul的客户端来获取全部可用的服务节点,调用方自己决定使用个节点

注:我们假设应用服务是分布式部署,可用节点表示存活节点,这个存活状态是由consu的客户端通过来维护的

consul集群的结构图:

我们只需要访问集群对外的api就可以默认访问了consul的client节点,也就是基本原理的2,3两点都是consul来操作,应用方只需要访问api就可以

以上是关于consul 工作原理的主要内容,如果未能解决你的问题,请参考以下文章

Consul 介绍

consul入门篇

Consul 基本概念,同类比较和内部原理

SpringCloud服务注册之Consul的简介和原理

Consul分布式锁原理详解及实例

Consul 核心原理解析之-Raft leader选举