一.consul的介绍
1.1consul是什么?
Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。 Consul是分布式的、高可用的、可横向扩展的。它具备以下特性 :
service discovery:consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易,一些外部服务,例如saas提供的也可以一样注册。
health checking:健康检测使consul可以快速的告警在集群中的操作。和服务发现的集成,可以防止服务转发到故障的服务上面。
key/value storage:一个用来存储动态配置的系统。提供简单的HTTP接口,可以在任何地方操作。
multi-datacenter:无需复杂的配置,即可支持任意数量的区域。
2.2使用consul服务场景
因为一套微服务架构中有很多个服务需要管理,也就是说会有很多对grpc。如果一一对应的进行管理会很繁琐所以我们需要有一个管理发现的机制。
二.部署集群
2.1部署环境
服务器 | 服务 | 操作系统 |
---|---|---|
192.168.106.90 | Docker-ce、Compose 3、Consul、Consul-template | centos7 |
192.168.106.91 | Docker-ce、registrator | centos7 |
2.2搭建Consul
##上传解压到指定文件夹中
[root@server1 ~]# mkdir /root/consul
[root@server1 ~]# cp consul_0.9.2_linux_amd64.zip /root/consul
[root@server1 ~]# cd /root/consul/
[root@server1 consul]# unzip consul_0.9.2_linux_amd64.zip
Archive: consul_0.9.2_linux_amd64.zip
inflating: consul
[root@server1 consul]# ls
consul consul_0.9.2_linux_amd64.zip
[root@server1 consul]# mv consul /usr/bin/ #导入系统环境方便系统识别
[root@server1 consul]# consul agent \ ##agent代理
-server \ ##提供server功能
-bootstrap \
-ui \ #提供web访问界面
-data-dir=/var/lib/consul-data \##参数地址
-bind=192.168.106.90 \ ##监听地址
-client=0.0.0.0 \ ##服务地址
-node=consul-server01 &> /var/log/consul.log &
##指定本地节点名称 产生日志混合输出到 后台运行
[1] 129523
[root@server1 consul]# consul members
Node Address Status Type Build Protocol DC
consul-server01 192.168.106.90:8301 alive server 0.9.2 2 dc1
[root@server1 consul]# consul info | grep leader
leader = true
leader_addr = 192.168.106.90:8300
[root@server1 consul]# jobs
[1]+ 运行中 consul agent -server -bootstrap -ui -data-dir=/var/lib/consul-data -bind=192.168.106.90 -client=0.0.0.0 -node=consul-server01 &>/var/log/consul.log &
查看集群信