Nginx结合consul动态负载均衡
1、什么是consul?
- Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件。 服务发现以及注册:
- 当服务Producer 启动时,会将自己的Ip/host等信息通过发送请求告知 Consul, Consul 接收到 Producer 的注册信息后,每隔一段时间会向 Producer 发送一个健康检 查的请求,检验Producer是否健康。 服务调用:
- 当 Consumer 请求Product时,会先从 Consul 中拿到存储Product服务的 IP 和 Port 的 临时表(temp table),从temp table表中任选一个· Producer 的 IP 和 Port, 然后根据这
个IP和Port,发送访问请求;temp table表只包含通过了健康检查的 Producer 信息, 并且每隔一段时间更新
2、consul 安装
Consul安装包下载地址: https://www.consul.io/downloads
(1)下载完后,解压( unzip consul_1.9.4_linux_amd64.zip),得到一个可执行文件consul
(2)将这个文件移动到全局变量环境中 Mv consul /usr/local/bin/
(3) 验证安装 Consul version
3、相关命令
4、启动服务端
consul agent -server -data-dir /tmp/consul -node=ali -bootstrap-expect 2 -bind=192.168.148.167 -ui -client=0.0.0.0 -datacenter=dc1
参数含义: agent
-server表示启动的是一个服务
-bootstrap-expect 1 表示等待多少个节点再启动,这里1个,就是自己一个就启动了
-node=texun_1 就是给consul服务起个别名为ali_1
-bind=172.17.114.76 绑定内网ip
-data-dir /opt/data1 数据存储目录为/opt/data1
-ui 启动默认ui界面
-client consul绑定在哪个client地址上,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1,可指定允许客户端使用什么ip去访问
- 加入192.168.148.167集群节点
--192.168.148.168服务器
consul agent -server -data-dir /tmp/consul -node=ali_168 -bootstrap-expect 2 -bind=192.168.148.168 -ui -client=0.0.0.0 -datacenter=dc1 -join 192.168.148.167
--192.168.148.169 服务器
consul agent -server -data-dir /tmp/consul -node=ali_169 -bootstrap-expect 2 -bind=192.168.148.169 -ui -client=0.0.0.0 -datacenter=dc1 -join 192.168.148