SpringCloud学习[10]-consul集群搭建与修改默认端口
一、集群搭建
· 环境准备
ssh shell 工具:远程连接
三台centos7服务器:192.168.200.241、192.168.200.242、192.168.200.243
·下载安装启动consul
consul安装启动
https://blog.csdn.net/qq_31832209/article/details/118092030
·集群启动(这里与上文连接启动有点不同,集群用server)
192.168.200.241 启动consul
consul agent -server -bootstrap-expect=3 -data-dir=/tmp/consul -node=vm241 -bind=192.168.200.241 -client=0.0.0.0 -datacenter=dc1 -ui &
192.168.200.242 启动consul
consul agent -server -bootstrap-expect=3 -data-dir=/tmp/consul -node=vm242 -bind=192.168.200.242 -client=0.0.0.0 -datacenter=dc1 -ui &
192.168.200.243 启动consul
consul agent -server -bootstrap-expect=3 -data-dir=/tmp/consul -node=vm243 -bind=192.168.200.242 -client=0.0.0.0 -datacenter=dc1 -ui &
选项详解:
| 选项 | 说明 |
| -server | 以server身份启动,默认是client。 |
| -bootstrap-expect | 集群要求的最少server数量,当低于这个数量,集群即失效。 |
| -data-dir | 表示相关数据存储的目录位置,在 serverAgent上该命令所指示的目录下会存储一些集群的状态信息。 |
| -node | 节点id,集群中的每个node必须有一个唯一的名称。默认情况下,Consul使用机器的hostname。 |
| -bind | 监听的ip地址。默认绑定0.0.0.0,可以不指定。表示Consul监听的地址,而且它必须能够被集群中的其他节点访问。Consul默认会监听第一个private IP,但最好还是提供一个。生产设备上的服务器通常有好几个网卡,所以指定一个不会出错。 |
| -config-dir | 指定配置文件夹,Consul会加载其中的所有文件。 |
| -client 0.0.0.0 -ui | 客户端的ip地址,0.0.0.0是指谁都可以访问。-ui表示可以访问UI界面。 |
| -dc | 指定数据中心名称,默认是dc1 |
此时三台服务器会打印:error="No cluster leader"

此时三台机器还未join,不能算是一个集群,三台机器上的consul均不能正常工作,因为leader未选出。
·集群搭建:
consul集群:当一个consul agent启动后,它不知道任何其他节点,要学习到集群中的其他节点,agent必须加入一个已经存在的集群(cluster)。要加入这样的集群,它只需要知道这个集群中的一个节点即可。它加入后,将会和这个member gossip(交谈)并迅速发现集群中的其他节点。一个consul agent可以加入任何类型的其他agent,而不只是那些运行于server mode的agent。
分别在vm242和vm243虚拟机上执行如下命令,让consul加入集群:
192.168.200.242 加入192.168.200.241

192.168.200.243 加入192.168.200.241

然后查看三台虚拟机,都会打印:New leader elected: payload=vm243
证明此时leader已经选出,集群可以正常工作。访问:http://192.168.200.241:8500/

集群状态查看:consul operator raft list-peers

集群member状态:consul members

·集群单机故障处理
kill三台虚拟机任意一台consul进程,这里kill leader 192.168.200.243
在192.168.200.243上执行:

此时另外两台consul节点服务器会打印:agent.server: New leader elected: payload=vm241
Leader丢失,剩下的两台机重新进行leader选举。



二、配置修改端口
在使用consul的过程中,我们可能想要做一个单机集群,节约服务器等等原因,那么我们就需要修改consul的启动端口,consul不仅为我们提供了命令行配置,还给我们提供了强大的配置文件功能。
consul server端的启动命令:
consul agent -server -client=0.0.0.0 -bootstrap-expect=1 -config-dir=/home/consul/conf.d -data-dir=/home/consul/data -ui
-config-dir=/home/consul/conf.d
指定加载置文件的目录,我们只需要填写配置文件的目录就可以帮助我们把该目录下所有的
以.json结尾配置文件加载进去,它的加载顺序是根据26个字母的顺序加进行加载配置文件
的。文件内容都是json格式的数据。默认后面文件定义配置会覆盖前面文件定义的配置。


consul为我们提供其他的配置文件属性:
Consul参数大全_钟耿龙Galen的博客-CSDN博客_consul 参数1、命令参数-advertise:通知展现地址用来改变我们给集群中的其他节点展现的地址,默认情况下-bind地址就是展现地址,然而也存在一些路由地址是不能受约束的,这时候会激活一个不同的地址来供应,如果这个地址不能路由,这个路由将不能被加入集群-bootstrap:用来控制一个server是否在bootstrap模式,在一个datacenter中只能有一个server处于bootstrap...https://blog.csdn.net/sssosssjdgjiff/article/details/88753583
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
