1、下载地址:https://www.consul.io/downloads.html
linux 下载地址: wget https://releases.hashicorp.com/consul/0.7.0/consul_0.7.0_linux_amd64.zip
2、解压: unzip consul_0.7.0_linux_amd64.zip
3、得到 consul 文件,这样就完成了安装
4、查看是否安装成功:输入命令 consul
5、启动Consul: ./consul agent -dev #-dev表示开发模式运行,另外还有-server表示服务模式运行
-dev(该节点的启动不能用于生产环境,因为该模式下不会持久化任何状态),该启动模式仅仅是为了快速便捷的启动单节点consul
该节点处于server模式
该节点是leader
该节点是一个健康节点
6、查看consul cluster中的每一个consul节点的信息
说明:
Address:节点地址
Status:alive表示节点健康
Type:server运行状态是server状态
DC:dc1表示该节点属于DataCenter1
注意:
members命令的输出是基于gossip协议的,并且是最终一致的(也就是说,某一个时刻你去运用该命令查到的consul节点的状态信息可能是有误的)
7 停止服务(优雅退出)
命令:CTRL+C
说明:
该节点离开后,会通知cluster中的其他节点
注意:
安装部分参考自:https://www.consul.io/intro/getting-started/install.html
启动和停止服务部分参考自:https://www.consul.io/intro/getting-started/agent.html
consul agent 命令详解
输入consul agent --help ,可以看到consul agent 的选项,如下:
consul agent 命令的常用选项,如下:
-data-dir
作用:指定agent储存状态的数据目录
这是所有agent都必须的
对于server尤其重要,因为他们必须持久化集群的状态
-config-dir
作用:指定service的配置文件和检查定义所在的位置
通常会指定为”某一个路径/consul.d”(通常情况下,.d表示一系列配置文件存放的目录)
-config-file
作用:指定一个要装载的配置文件
该选项可以配置多次,进而配置多个配置文件(后边的会合并前边的,相同的值覆盖)
-dev
作用:创建一个开发环境下的server节点
该参数配置下,不会有任何持久化操作,即不会有任何数据写入到磁盘
这种模式不能用于生产环境(因为第二条)
-bootstrap-expect
作用:该命令通知consul server我们现在准备加
这里写图片描述
这边准备了三台CentOS 7的虚拟机,主机规划如下,供参考:
6.1 搭建步骤:
启动node0机器上的Consul(node0机器上执行):
consul agent -data-dir /tmp/node0 -node=node0 -bind=192.168.11.143 -datacenter=dc1 -ui -client=192.168.11.143 -server -bootstrap-exp
- 启动node1机器上的Consul(node1机器上执行):
consul agent -data-dir /tmp/node1 -node=node1 -bind=192.168.11.144 -datacenter=dc1 -ui
- 1
- 1
- 启动node2机器上的Consul(node2机器上执行):
consul agent -data-dir /tmp/node2 -node=node2 -bind=192.168.11.145 -datacenter=dc1 -ui -client=192.168.11.145
- 1
- 1
- 将node1节点加入到node0上(node1机器上执行):
consul join 192.168.11.143
- 1
- 1
- 将node2节点加入到node0上(node2机器上执行):
consul join -rpc-addr=192.168.11.145:8400 192.168.11.143
- 1
- 1
- 这样一个简单的Consul集群就搭建完成了,在node1上查看当前集群节点:
consul members -rpc-addr=192.168.11.143:8400
说明集群已经搭建成功了。
我们分析一下,为什么第5步和第6步需要加-rpc-addr 选项,而第4步不需要加任何选项呢?原因是-client 指定了客户端接口的绑定地址,包括:HTTP、DNS、RPC,而consul join 、consul members 都是通过RPC与Consul交互的。
如上,我们三个节点都加了-ui 参数启动了内建的界面。我们可以通过:http://192.168.11.143:8500/ui/ 或者http://192.168.11.145:8500/ui/进行访问,也可以在node1机器上通过http://127.0.0.1:8500/ui/ 进行访问,原因是node1没有开启远程访问 ,三种访问方式结果是一致的,如下:
consul cluster
7 参考文档:
Consul官方文档:https://www.consul.io/intro/getting-started/install.html
Consul 系列博文:http://www.cnblogs.com/java-zhao/archive/2016/04/13/5387105.html
使用consul实现分布式服务注册和发现:http://www.tui