consul 安装和高可用配置

故事扮演 提交于 2019-11-26 16:21:44

consul 类似于eureka的注册中心(单独的服务)

1.根据需要下载consul(1.0和0.9的版本风格上有些差异) 
也可以用命令行直接安装(这里安装的是最新的版本)

brew install consul
1
2.下载完解压并将二进制文件consul拷贝到bin目录下

sudo scp consul /usr/local/bin/
1
3.测试consul是否安装成功 
如果出现command的相关介绍表示安装成功

consul
1
4.启动consul(# -dev表示开发模式运行,另外还有-server表示服务模式运行)

consul agent -dev
1
说明: 
-dev(该节点的启动不能用于生产环境,因为该模式下不会持久化任何状态), 
该启动模式仅仅是为了快速便捷的启动单节点consul 
该节点处于server模式 
该节点是leader 
该节点是一个健康节点

相关命令: 
常用的命令为启动agent,agent下的详细命令可以用consul agent –help查询

-data-dir 
指定agent储存状态的数据目录,对于server尤其重要,因为他们必须持久化集群的状态

-config-dir 
指定service的配置文件和检查定义所在的位置,通常会指定为”某一个路径/consul.d”

-config-file 
指定一个要装载的配置文件,该选项可以配置多次,进而配置多个配置文件( 
后边的会合并前边的,相同的值覆盖)

-bootstrap-expect 
作用:该命令通知consul server我们现在准备加入的server节点个数,该参数是为了延迟日志复制的启动直到我们指定数量的server节点成功的加入后启动。

-node 
a. 作用:指定节点在集群中的名称 
b. 该名称在集群中必须是唯一的(默认采用机器的host) 
c. 推荐:直接采用机器的IP

-bind 
a. 作用:指明节点的IP地址 
b. 有时候不指定绑定IP,会报Failed to get advertise address: Multiple private IPs found. Please configure one. 的异常

-server 
a. 作用:指定节点为server 
b. 每个数据中心(DC)的server数推荐至少为1,至多为5 
c. 所有的server都采用raft一致性算法来确保事务的一致性和线性化,事务修改了集群的状态,且集群的状态保存在每一台server上保证可用性 
d. server也是与其他DC交互的门面(gateway)
-client 
a. 作用:指定节点为client,指定客户端接口的绑定地址,包括:HTTP、DNS、RPC 
b. 默认是127.0.0.1,只允许回环接口访问 
c. 若不指定为-server,其实就是-client

-join 
a. 作用:将节点加入到集群

-datacenter(老版本叫-dc,-dc已经失效) 
a. 作用:指定机器加入到哪一个数据中心中
5.集群搭建 
启动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-expect 1
1
启动node1机器上的Consul(node1机器上执行):

consul agent -data-dir /tmp/node1 -node=node1 -bind=192.168.11.144 -datacenter=dc1 -ui
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
将node1节点加入到node0上(node1机器上执行):

consul join 192.168.11.143
1
将node2节点加入到node0上(node2机器上执行):

consul join -rpc-addr=192.168.11.145:8400  192.168.11.143
1
这样一个简单的Consul集群就搭建完成了,在node1上查看当前集群节点:

consul members -rpc-addr=192.168.11.143:8400
1
参考文档: 
1.Consul官方文档:https://www.consul.io/intro/getting-started/install.html 
2.CSDN文章:https://blog.csdn.net/u010046908/article/details/61916389
————————————————
版权声明:本文为CSDN博主「songzhichun」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010694922/article/details/81703681

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!