分布式服务发现与配置之Consul

文档: https://www.consul.io/docs/install

 

一、什么是consul

1、Consul 是 HashiCorp 公司推出的开源软件,用于实现分布式系统的服务发现与配置。

Consul 是分布式的、高可用的、 可横向扩展的

2、官方网站:

https://www.consul.io/

3、Consul 集群间使用了 Gossip 协议通信和 raft 一致性算法

 

[安装]

yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum install -y consul

验证是否安装完成

consul   version

三台服务器上都有进行安装

 

创建数据目录

mkdir -p /data/consul-data
chown -R consul:consul  /data/consul-data

 

[配置文件]

vim /etc/consul.d/server.json

第一台:

{
  "data_dir": "/data/consul-data/",
  "log_level": "INFO",
  "node_name": "server-1",
  "server": true,
  "bootstrap_expect": 2,
  "client_addr": "0.0.0.0",
  "bind_addr": "172.18.10.1"
}

第二台:  修改node_name,bind_addr

{
  "data_dir": "/data/consul-data/",
  "log_level": "INFO",
  "node_name": "server-2",
  "server": true,
  "bootstrap_expect": 2,
  "client_addr": "0.0.0.0",
  "bind_addr": "172.18.10.2"
}

第三台:

{
  "data_dir": "/data/consul-data/",
  "log_level": "INFO",
  "node_name": "server-3",
  "server": true,
  "ui": true,
  "bootstrap_expect": 2,
  "client_addr": "0.0.0.0",
  "bind_addr": "172.18.10.3"
}

 

 

 

 

 

 

对应的命令:

nohup /usr/local/soft/consul agent -server -bind=172.17.0.2 -client=0.0.0.0 -bootstrap-expect=2 -data-dir=/data/consul/da -node=server-2 >/dev/null 2>&1 &

-server:以server身份启动

-bootstrap-expect=2:集群要求的最少server数量

-bind:监听的ip

-client:客户端ip,0.0.0.0表示不限制客户端ip

-data-dir:指定存放数据的目录

-node:指定节点id,注意:同一集群内节点id不允许重复
-ui: 允许访问web ui

 

 

 

 

添加systemctl服务管理

vim  /lib/systemd/system/consul.service

如果是使用yum安装的,已经存在该服务

[Unit]
Description="HashiCorp Consul - A service mesh solution"
Documentation=https://www.consul.io/
Requires=network-online.target
After=network-online.target
ConditionFileNotEmpty=/etc/consul.d/consul.hcl

[Service]
EnvironmentFile=-/etc/consul.d/consul.env
User=consul
Group=consul
ExecStart=/usr/bin/consul agent -config-dir=/etc/consul.d/
ExecReload=/bin/kill --signal HUP $MAINPID
KillMode=process
KillSignal=SIGTERM
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

 

[启动服务]

systemctl  start consul.service

 [操作]

# 查看版本
consul  verion

# 查看当前节点的信息
consul  info

# 查看consul集群成员数量
consul members

# 退出集群
consul leave

 

posted @ 2022-10-08 19:14  X-Wolf  阅读(229)  评论(0编辑  收藏  举报