文章目录
什么是consul?
Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。
它主要由多个组成部分:
- 服务发现:客户端通过Consul提供服务,类似于API,MySQL,或者其他客户端可以使用Consul发现服务的提供者。使用类似DNS或者HTTP,应用程序和可以很轻松的发现他们依赖的服务。
- 检查健康:Consul客户端可以提供与给定服务相关的健康检查(Web服务器返回200 ok)或者本地节点(“内存利用率低于90%”)。这些信息可以监控集群的运行情况,并且使访问远离不健康的主机组件。
- 键值对存储:应用程序可以使用Cousul的层级键值对。
- 多数据中心:Consul有开箱及用的多数据中心。
Consul的特性
- Consul支持健康检查,允许存储键值对
- 一致性协议采用Raft算法,用来保证服务的高可用
- 成员管理和消息广场采用GOSSIP协议,支持ACL访问控制
方便部署,与Docker等轻量级容器可无缝配合
软件包:
百度网盘链接:https://pan.baidu.com/s/1pYu12vUpSnwyNpgPzjduEQ
提取码:v14g
一、构建自动发现的Docker服务架构
- 每个提供服务的节点上都要部署和运行Consul的agent
- Consul agent有两种运行模式:
- Server
- Client
- Server和Client只是Consul集群层面的区分,与搭建在Cluster之上的应用服务无关
节点 | IP | 部署服务 |
---|---|---|
consul服务器 | 192.168.11.141 | docker-ce、consul、consul-template、nginx(反向代理) |
node后端节点 | 192.168.11.133 | docker-ce、registrator |
1、建立Consul服务
#创建工作目录
[root@localhost ~]#mkdir consul
#上传软件包并解压
[root@localhost ~]# cd consul
[root@localhost consul]# unzip consul_0.9.2_linux_amd64.zip
[root@localhost consul]# mv consul /usr/bin/
#安装代理端
[root@localhost consul]# consul agent \
-server \
-bootstrap \
-ui \
-data-dir=/var/lib/consul-data \
-bind=192.168.11.141 \
-client=0.0.0.0 \
-node=consul-server01 &> /var/log/consul.log &
#查看集群信息
#查看集群节点详细信息
[root@localhost consul]# curl 127.0.0.1:8500/v1/catalog/nodes