Consul 是用于实现分布式系统的服务发现与配置,Consul 是分布式的、高可用的、可横向扩展的。
Server的数量建议是 3~5 台,Client 的数量建议2~5台,这能平衡故障情况下的可用性和集群性能。
架构示意图:
搭建环境
最低启动3个server,2个client
如:
server1 IP:192.168.0.1
server2 IP:192.168.0.2
server3 IP:192.168.0.3
client1 IP:192.168.0.4
client2 IP:192.168.0.5
server1 集群启动脚本
#!/bin/sh
# 路径,IP, 名称
ROOT="/www/wwwroot/X3_Consul"
IP="192.168.0.1"
NAME="server1"
nohup "$ROOT"/consul agent -ui -server -bootstrap-expect=1 -config-dir="$ROOT"/tmp -data-dir="$ROOT"/tmp -node="$NAME" -bind="$IP" -client=0.0.0.0 -enable-script-checks=true >> "$ROOT"/tmp/consul.log 2>&1
echo $! > /var/run/consul.pid
server2 集群启动脚本,注册到集群
#!/bin/sh
# 路径,IP, 名称
ROOT="/www/wwwroot/X3_Consul/"
IP="192.168.0.1"
NAME="server2"
MAIN="192.168.0.2"
nohup "$ROOT"/consul agent -ui -server -bootstrap-expect=2 -config-dir="$ROOT"/tmp -data-dir="$ROOT"/tmp -node="$NAME" -bind="$IP" -client=0.0.0.0 -enable-script-checks=true -join "$MAIN" >> "$ROOT"/tmp/consul.log 2>&1
echo $! > /var/run/consul.pid
server3 集群启动脚本,注册到集群
#!/bin/sh
# 路径,IP, 名称
ROOT="/www/wwwroot/X3_Consul/"
IP="192.168.0.1"
NAME="server2"
MAIN="192.168.0.3"
nohup "$ROOT"/consul agent -ui -server -bootstrap-expect=2 -config-dir="$ROOT"/tmp -data-dir="$ROOT"/tmp -node="$NAME" -bind="$IP" -client=0.0.0.0 -enable-script-checks=true -join "$MAIN" >> "$ROOT"/tmp/consul.log 2>&1
echo $! > /var/run/consul.pid
client1 集群启动脚本
#!/bin/sh
# 路径,IP, 名称
ROOT="/www/wwwroot/X3_Consul/"
IP="192.168.0.2"
NAME="client1"
MAIN="192.168.0.4"
nohup "$ROOT"/consul agent -ui -config-dir="$ROOT"/tmp -data-dir="$ROOT"/tmp -node="$NAME" -bind="$IP" -client=0.0.0.0 -enable-script-checks=true -join "$MAIN" >> "$ROOT"/tmp/consul.log 2>&1
echo $! > /var/run/consul.pid
client2 集群启动脚本
#!/bin/sh
# 路径,IP, 名称
ROOT="/www/wwwroot/X3_Consul/"
IP="192.168.0.3"
NAME="client1"
MAIN="192.168.0.5"
nohup "$ROOT"/consul agent -ui -config-dir="$ROOT"/tmp -data-dir="$ROOT"/tmp -node="$NAME" -bind="$IP" -client=0.0.0.0 -enable-script-checks=true -join "$MAIN" >> "$ROOT"/tmp/consul.log 2>&1
echo $! > /var/run/consul.pid
启动后浏览consul集群内IP地址如图
ip+8500