天天看點

分布式服務發現與配置之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      

驗證是否安裝完成

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"
}      
分布式服務發現與配置之Consul

對應的指令:

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      

繼續閱讀