1.版本
Consul:0.9.3
系统:centos 7.4
2.Consul介绍
官方URL:
https://www.consul.io/
Consul各版本更新细节介绍:
https://github.com/hashicorp/consul/blob/v1.4.0/CHANGELOG.md
关于raft算法和gossip协议介绍:
https://www.backendcloud.cn/2017/11/12/raft-gossip/
3.consul的两个用途
服务注册与服务发现
以下图为例,以往的做法是将后端IP+Port都配置在前段配置文件中,这会带来一下几个问题:
- 需要配置N个后端的网络位置,加大配置的复杂性
- 后端的网络位置变化,都需要改变每个前端的配置
- 在后端数量大的情况下,负载均衡需要前端程序内部解决,加重了前端程序的负担
- 后端出现故障(网络、设备、程序)时前端无法获得反馈,仍然将数据发送给后端,出现数据丢失的情况.
加入服务发现模块之后,后端A、B、C把当前自己的网络位置注册到服务发现模块,服务发现就以Key/Value的方式记录下,K一般是服务名,V就是IP:port。服务发现模块定时对注册的服务以轮询的方式进行健康检查。前端在调用服务A、B、C的时候,就根据服务发现模块下当前已有的网络位置,调用已有的服务。
集中配置管理
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190122170742890.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyOTEyMzM5,size_16,color_FFFFFF,t_70
将程序的配置参数以KEY/VALUE的方式配置在界面上,配置后的KEY/VALUE将存储在consul内部的“kv store”中,程序从“kv store”拉取属于自己的配置写入配置文件。以此方式管理配置文件,只需要在界面上修改某行参数,再重启相应的程序即可获取最新的配置参数
概念:数据中心与Gossip池
官方示例图: