计算机系统应用教程网站

网站首页 > 技术文章 正文

Consul集群搭建

btikc 2024-09-20 15:08:07 技术文章 22 ℃ 0 评论

1. 介绍

Consul和Eureka一样也可以用来做注册中心, 但是Consul不同于Eureka,Consul包含多个组件,使用go语言开发,包含以下功能:

(1)服务发现

(2)健康检查

(3)Key/Value存储

(4)多数据中心

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

整体架构如下:

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

2. 集群搭建

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

wget https://releases.hashicorp.com/consul/1.5.3/consul_1.5.3_linux_amd64.zip
unzip consul_1.5.3_linux_amd64.zip

(2)将解压后的consul文件移动到/usr/local/bin目录下,执行consul命令查看安装情况

mv consul /usr/loca/bin
consul

(3)修改环境变量使consul安装永久生效

vim /etc/profile
#在最后一行添加:
export PATH=$PATH:/usr/local/bin
#保存后执行
source /etc/profile

(4)启动集群

准备3台节点服务器:

192.168.203.130 consul1

192.168.203.131 consul2

192.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>&1
nohup 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

命令查看集群状态,如下图

遇到的坑:

在执行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页面查看

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表