springCloud-18 consul 集群搭建

思路:

        一,首先需要搭建三个consul server 服务。

        二,然后通过配置,将各个服务加入集群。

springCloud-18 consul 集群搭建_第1张图片

consul server 就是consul 注册中心

consul client 就是微服务,多个微服务可以注册一个client。

        首先需要有一个正常的consul 集群,有server,有leader。这里在服务器Server1,Server2,Server3上分别部署consul Server。(这些服务器上最好只部署了consul 程序,以尽量维护consul 的稳定)

        服务器Server4 Server5 上通过 Consul Client 分别注册 Service A B C ,这里每个 Service分别部署在了两个服务器上,这样可以避免 Service 的单点问题。(一般微服务和 Client 绑定)
        在服务器Server6 Program D 需要访问 Service B ,这时候 Program D 首先访问本机 Consul Client提供的 HTTP API ,本机 Client 会将请求转发到 Consul Server Consul Server 查询到 Service B当前的信息返回

一,准备环境

服务器 ip
consul 类型
Node (节点名称)
序号
192.168.74.101
server
server-1
s1
192.168.74.102
server
server-2
s2
192.168.74.103
server
server-3
s3
192.168.74.104
client
clent-1
s4
  • Agent client 模式启动的节点。在该模式下,该节点会采集相关信息,通过 RPC 的方式向 server 发送。Client模式节点有无数个,官方建议搭配微服务配置
  • Agent server 模式启动的节点。一个数据中心中至少包含 1 server 节点。不过官方建议使用3 5 server 节点组建成集群,以保证高可用且不失效率。server 节点参与 Raft、维护会员信息、注册服务、健康检查等功能。

二,安装consul 并启动

  • 在每个consul节点上安装consul服务,下载安装过程和单节点一致
##从官网下载最新版本的Consul服务
wget https://releases.hashicorp.com/consul/1.5.3/consul_1.5.3_linux_amd64.zip
##使用unzip命令解压
unzip consul_1.5.3_linux_amd64.zip
##将解压好的consul可执行命令拷贝到/usr/local/bin目录下
cp consul /usr/local/bin
##测试一下
consul
  • 启动每个consul server节点
##登录s1虚拟机,以server形式运行
consul agent -server -bootstrap-expect 3 -data-dir /etc/consul.d -node=server-1 
-bind=192.168.74.101 -ui -client 0.0.0.0 &
##登录s2 虚拟机,以server形式运行
consul agent -server -bootstrap-expect 2 -data-dir /etc/consul.d -node=server-2 
-bind=192.168.74.102 -ui -client 0.0.0.0 & 
##登录s3 虚拟机,以server形式运行
consul agent -server -bootstrap-expect 2 -data-dir /etc/consul.d -node=server-3 
-bind=192.168.74.103 -ui -client 0.0.0.0 &
-server:以 server 身份启动。
-bootstrap-expect :集群要求的最少 server 数量,当低于这个数量,集群即失效。
-data-dir data 存放的目录,更多信息请参阅 consul 数据同步机制
-node :节点 id ,在同一集群不能重复。
-bind :监听的 ip 地址。
-client :客户端的 ip 地址 (0.0.0.0 表示不限制 )
& :在后台运行,此为 linux 脚本语法

至此三个Consul Server模式服务全部启动成功

## 在本地电脑中使用 client 形式启动 consul
consul agent -client = 0 .0.0.0   -data-dir /etc/consul.d -node = client-1
 

三,每个节点加入集群 

s2 s3 s4 服务其上通过 consul join 命令加入 s1 中的 consul 集群中
##加入consul集群
consul join 192.168.74.101

四,测试

        在任意一台服务器中输入 consul members 查看集群中的所有节点信息
##查看consul集群节点信息
consul members

springCloud-18 consul 集群搭建_第2张图片

 

你可能感兴趣的:(SpringCloud,spring,cloud,consul,eureka)