consul学习总结

一、consul定义:

提供服务发现,配置和隔离功能的一种服务网格解决方案。

所以从定义来看主要功能还是服务发现,也可以作为不同进程中公共配置,解决分布式数据一致性问题也是可以的。

二、作为服务发现工作流程:

1,首先自己开发的服务中需要有对应consul插件(第三方库),当自己服务启动的时候会把自己注册到远程的consul server上面。


2,当一个服务想和另一个服务进行的通信的时候,会先去consul server上面进行查询。找到对应的另一个服务的地址,然后在直接和另一个服务进行通信。


3,对应服务注册发现有三种方式:

3.1通过配置文件的方式静态注册.

3.2通过http api 接口来动态注册.

3.3使用consul api(程序中的consul语言包)


三,关于consul启动

1,consul有两种模式,默认是client模式,如果需要server模式,需要-server=true.去设置,client模式会进行继续的透传。它和server模式的区别就是不会对数据进行本地持久化。


2,当consul开启server模式的时候,需要去设计2个ip,-bind=ip是用来在局域网内集群中不同节点通信用,-client=ip是该节点作为consul server的时候用来侦听其他客户端的ip地址。

3,还有其他不同的启动参数还没时间去尝试一下,当有对应的环境的时候在进行吧。

四、consul集群工作方式

1,这里中心server是Server2,但是当Server4需要进行服务查询的时候的,它连接的是Server1,这个时候Server1起到作用为透传的作用,他会将Server4的请求透传到Server2.

所以当启动的时候,你的work server可以注册到集群中的任何一台consul server,但是当它不是集群的leader的时候,它的主要作用就是透传。


2,关于集群中的选举规则还不是太了解。只知道当主leader出现宕机的时候,这些副server会通过raft算法在选举一个leader.


3,关于出现宕机然后小于集群设置数量限制的问题,目前还是一个疑问,当以后部署的时候在研究一下。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容