本文介绍: consul : 实现服务自动发现和注册的工具。

目录

一.什么是consul

解决什么问题?

consul的模式:

二.consul 部署

consul服务器:

查看版本:

设置代理,在后台启动 consul 服务端:

进行后台启动:

查看集群信息:

访问页面:

registrator服务器:

 测试服务发现功能是否正常:


一.什么是consul

consul  : 实现服务自动发现和注册的工具

解决什么问题?

如果后端应用服务器集群节点数量很多,前端的负载均衡器配置和管理会很麻烦的问题。(负载均衡器的节点配置条目会很多,配置管理起来会很麻烦;并且如果后端节点的网络位置发生了变化,还需要修改所有调用这些后端节点的负载均衡器的配置等问题)

consul的模式:

client模式:可用于接收后端服务发来的注册信息,并转发给server节点,没有持久化能力

server模式:可用于接收后端服务或client模式节点发来的注册信息,还可在server节点之间同步注册信息,具有持久化注册信息到本地的能力
server-leader节点:复制同步注册信息给其它的server节点,并对各个节点做健康检查
 

二.consul 部署

consul服务器:192.168.233.10;registrator服务器:192.168.233.20

consul服务器:

先创建目录:

拖入consul压缩包:

将压缩包复制到consul目录中:

在进行解压:

移动到环境变量 中:

mv consul /usr/local/bin/

查看版本:

设置代理,在后台启动 consul 服务端:

先创建data目录:

创建日志目录:

进行后台启动:

consul agent
-server
-bootstrap
-ui
-data-dir=/var/lib/consul-data
-bind=192.168.233.10
-client=0.0.0.0
-node=consul-server01 &> /var/log/consul.log &

-server: 以server身份启动。默认是client。
-bootstrap :用来控制一个server是否在bootstrap模式,在一个数据中心中只能有一个server处于bootstrap模式,当一个server处于 bootstrap模式时,可以自己选举为 server-leader。
-bootstrap-expect=2 :集群要求的最少server数量,当低于这个数量,集群即失效。
-ui :指定开启 UI 界面,这样可以通过 http://localhost:8500/ui 这样的地址访问 consul 自带的 web UI 界面。
-data-dir :指定数据存储目录。
-bind :指定用来在集群内部的通讯地址,集群内的所有节点到此地址都必须是可达的,默认是0.0.0.0。
-client :指定 consul 绑定在哪个 client 地址上,这个地址提供 HTTP、DNS、RPC 等服务,默认是 127.0.0.1。
-node :节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名。
-datacenter :指定数据中心名称,默认是dc1。

启动consul后默认会监听5个端口:
8300:replication、leader farwarding的端口
8301:lan cossip的端口
8302:wan gossip的端口
8500:web ui界面的端口
8600:使用dns协议查看节点信息的端口

查看集群信息:

查看members状态:

查看集群状态:

consul operator raft list-peers

通过 http api 获取集群信息:

curl 127.0.0.1:8500/v1/status/peers             #查看集群server成员

curl 127.0.0.1:8500/v1/status/leader            #集群 server-leader

curl 127.0.0.1:8500/v1/catalog/services            #注册的所有服务

curl 127.0.0.1:8500/v1/catalog/nodes  #集群节点详细信息

访问页面:

registrator服务器:

安装 Registrator,创建镜像:

docker pull gliderlabs/registrator

添加容器:

docker run -d –name=registrator –net=host -v /var/run/docker.sock:/tmp/docker.sock –restart=always gliderlabs/registrator:latest –ip=192.168.233.20 consul://192.168.233.10:8500

–net=host :把运行的docker容器设定为host网络模式。
-v /var/run/docker.sock:/tmp/docker.sock :把宿主机的Docker守护进程(Docker daemon)默认监听的Unix域套接字挂载到容器中。
–restart=always :设置在容器退出时总是重启容器。
–ip :刚才把network指定了host模式,所以我们指定ip为宿主机的ip。
consul :指定consul服务器的IP和端口。

 测试服务发现功能是否正常:

docker run -d –name c1 -p 1314:80 nginx:1.24

docker run -d –name c2 -p 1324:80 nginx:1.24

访问页面:

consul服务器上查看:

原文地址:https://blog.csdn.net/2302_79748698/article/details/135932086

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_63613.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注