欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

SpringCloud学习[10]-consul集群搭建与修改默认端口

时间:2023-04-17
一、集群搭建 · 环境准备

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

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。