集群搭建_Consul集群搭建

本文介绍了Consul集群的搭建过程,包括下载安装包、在三台节点服务器上启动,并详细解释了启动参数,特别指出必须添加的参数以避免重启后失效。此外,还提及了在搭建过程中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

aed076258f61528cd1a97c44d9263d26.png

作者 | 邵茂林

编辑 | 王艳丽

一、介绍

     Consul和Eureka一样也可以用来做注册中心, 但是Consul不同于Eureka,Consul包含多个组件,使用go语言开发,包含以下功能:(1)服务发现       (2)健康检查(3)Key/Value存储(4)多数据中心

整体架构如下:

784292b013b0a15d759fcdd9c8db2979.png

一个Consul集群可以有多个数据中心,每个数据中心运行一个Consul Server集群,server数目一般在3-5个,因为Consul是强一致性的,server的数目太多在同步数据的时候会产生性能问题。client的数目没有限制,可以成千上万个。

二、集群搭建

1、首先去官网下载consul安装包并解压即可安装consul

Consul官网:https://www.consul.io

wget https://releases.hashicorp.com/consul/1.5.3/consul_1.5.3_linux_amd64.zipunzip  consul_1.5.3_linux_amd64.zip
2、将解压后的consul文件移动到/usr/local/bin目录下,执行consul命令查看安装情况
mv consul /usr/loca/binconsul

3056f876c177865fa5d800cb205f6c02.png

3、修改环境变量使consul安装永久生效
vim /etc/profile#在最后一行添加:export PATH=$PATH:/usr/local/bin#保存后执行source /etc/profile
4、启动集群

准备3台节点服务器:192.168.203.130   consul1192.168.203.131   consul2192.168.203.132   consul3

步骤一:启动consul1

nohup consul agent -server -bootstrap-expect 3 -bind=192.168.203.130 -client=0.0.0.0 -data-dir=/home/consul/data -node=consul1 -ui >> /home/consul/logs/consul.log 2>&1

参数介绍:

server:定义agent以server的身份启动
bootstrap-expect:一个数据中心中,集群要求的server的数量,当少于这个数量的时候,集群不生效
bind:监听的ip地址,用来在集群内部通信(集群内部的所有节点都是可达的,默认为:0.0.0.0)
client:客户端地址
node:节点id,同一集群中不能重复,默认是节点主机名
data-dir:数据存放目录
ui:启动web客户端

步骤二:启动另外两个节点:192.168.203.131,192.168.203.132
nohup consul agent -server -bootstrap-expect 3 -bind=192.168.203.131 -client=0.0.0.0 -data-dir=/home/consul/data -node=consul2 -ui >> /home/consul/logs/consul.log 2>&1nohup consul agent -server -bootstrap-expect 3 -bind=192.168.203.132 -client=0.0.0.0 -data-dir=/home/consul/data -node=consul3 -ui >> /home/consul/logs/consul.log 2>&1
步骤三:分别将consul2,consul3加入到集群中,#在192.168.203.131,192.168.203.132上执行如下命令:
consul join 192.168.203.130
至此整个集群搭建完成,执行consul operator raft list-peers命令查看集群状态,如下图

7b0785e0822cd4cd3b57cf0cc4faafbc.png

遇到的坑:

      在执行consul join 192.168.203.130时会遇到如下错误:
Failed to join 192.168.203.130:dial tcp 192.168.203.130:8301:connect:no route to host
解决办法:      分别将8301,8300,8500端口加入防火墙就好了
firewall-cmd --zone=public --add-port=8301/tcp --permanent

     #必须添加,否则重启之后会失效

firewall-cmd --reload
5、web页面查看

5dbd67e4b14448a584b53ba22bbf3331.png

往期精彩回顾

1.  敏捷电子协作工具的六项要求 | ACT

2.  未来银行的发展之想 ——从银行的跨界、泛在和共享谈起

3.  抖音BoostMultiDex优化实践:Android低版本上APP首次启动时间减少80%(一)

4.  抖音BoostMultiDex优化实践:Android低版本上APP首次启动时间减少80%(二)

5.分布式敏捷组织管理实践初探

6.分布式事务

7.话说新金融、第二曲线与“三大战略”

关注我们25233c00941ebbea9a56d682cd1866dc.png7e7cbb040d7e64e81aa87a386ca0fd13.png

让我知道你在看

10ac7e485611e8eeb32327fb4aefdfa1.gif
### Consul 高可用集群搭建指南 Consul 是一种分布式服务发现和配置管理工具,支持高可用性和多数据中心操作。为了构建一个高可用的 Consul 集群,通常需要至少三个服务器节点作为 Consulserver 节点来形成 quorum(法定人数)。以下是关于如何设置 Consul 高可用集群的关键要点: #### 1. **规划基础设施** 在设计阶段,应考虑硬件资源分配以及网络拓扑结构。推荐使用奇数个 server 节点以减少投票冲突的可能性[^4]。 #### 2. **安装 Consul** 每台机器上都需要安装相同版本的 Consul。可以通过包管理器或者下载二进制文件的方式完成安装过程。例如,在 Linux 上可以执行如下命令: ```bash wget https://releases.hashicorp.com/consul/<version>/consul_<version>_linux_amd64.zip unzip consul_<version>_linux_amd64.zip sudo mv consul /usr/local/bin/ ``` #### 3. **配置 Consul Server** 创建 JSON 文件用于定义每个 server 实例的行为参数。下面是一个典型的配置示例: ```json { "bootstrap_expect": 3, "server": true, "datacenter": "dc1", "data_dir": "/opt/consul", "log_level": "INFO", "bind_addr": "0.0.0.0", "client_addr": "0.0.0.0", "retry_join": ["<ip_of_server_1>", "<ip_of_server_2>"], "ui": true } ``` 上述配置中的 `bootstrap_expect` 参数指定了预期参与初始选举的 server 数量;`retry_join` 列表包含了其他 server 成员的 IP 地址以便自动加入集群[^1]。 #### 4. **启动 Consul 进程** 利用之前准备好的配置文件运行 Consul daemon 命令: ```bash nohup consul agent -config-file=/path/to/config.json & ``` #### 5. **验证集群状态** 一旦所有 server 启动完毕并成功连接至集群,则可通过 HTTP API 或者 CLI 工具检查当前成员状况: ```bash curl http://localhost:8500/v1/status/leader consul members ``` 这些指令分别返回 leader 节点的信息以及整个集群内的活跃 member 清单[^2]。 #### 6. **监控与维护** 对于生产环境下的长期稳定运作而言,持续性的健康监测不可或缺。可借助外部解决方案如 Elasticsearch 和 Kibana 来收集日志数据并可视化性能指标[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值