Spring Cloud 系列之 Consul 注册中心(二)

本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Consul 注册中心(一)

本篇文章讲解 Consul 集群环境的搭建。


Consul 集群

点击链接观看:Consul 集群视频(获取更多请关注公众号「哈喽沃德先生」)

上图是一个简单的 Consul Cluster 架构,Consul Cluster 有 Server 和 Client 两种角色。不管是 Server 还是 Client,统称为 Agent,Consul Client 是相对无状态的,只负责转发 RPC 到 Server 资源开销很少。Server 是一个有一组扩展功能的代理,这些功能包括参与 Raft 选举,维护集群状态,响应 RPC 查询,与其他数据中心交互 WAN Gossip 和转发查询给 leader 或者远程数据中心。

每个数据中心,Client 和 Server 是混合的。一般建议有 3~5 台 Server。这是基于有故障情况下的可用性和性能之间的权衡结果,因为越多的机器加入达成共识越慢,Server 之间会选举出一个 Leader。然而并不限制 Client 的数量,一般建议一个服务对应一个 Client,它们可以很容易的扩展到数千或者数万台 。在开发时我们绑定一组服务注册中心中的客户端即可。

环境准备

服务器 IP Consul 类型 Node 节点
192.168.10.101 server server-01
192.168.10.102 server server-02
192.168.10.103 server server-03
192.168.10.1 client client-01

安装

将安装包上传至服务器。

安装 unzip 命令,创建 consul 目录,将 consul 解压至指定目录。

yum -y install unzip 										# 安装 unzip
mkdir -p /usr/local/consul 									# 创建 consul 目录
unzip consul_1.7.0_linux_amd64.zip -d /usr/local/consul/ 	# 解压至 consul 目录
mkdir -p /usr/local/consul/data								# 创建 consul 数据目录

启动

注册中心服务端

以 server 服务模式运行三台注册中心。

# node-01
./consul agent -server -bind=192.168.10.101 -client=0.0.0.0 -ui -bootstrap-expect=3 -data-dir=/usr/local/consul/data/ -node=server-01
# node-02
./consul agent -server -bind=192.168.10.102 -client=0.0.0.0 -ui -bootstrap-expect=3 -data-dir=/usr/local/consul/data/ -node=server-02
# node-03
./consul agent -server -bind=192.168.10.103 -client=0.0.0.0 -ui -bootstrap-expect=3 -data-dir=/usr/local/consul/data/ -node=server-03

参数含义如下:

  • -server:以服务端身份启动(注册中心)

  • -bind:表示绑定到哪个 ip

  • -client:指定客户端访问的 ip,0.0.0.0 表示不限客户端 ip

  • -ui:开启 web 界面访问

  • -bootstrap-expect=3:表示 server 集群最低节点数为 3,低于这个值将工作不正常(注:类似 ZooKeeper一样,通常集群数为奇数方便选举,Consul 采用的是 Raft 算法)

  • -data-dir:表示指定数据的存放目录(该目录必须存在,需提前创建好)

  • -node:表示节点在 web ui 中显示的名称

注册中心客户端

consul agent -client=0.0.0.0 -bind=192.168.10.1 -data-dir=D:\Example\consol\data -node=client-01

关联集群

在 server-02 和 server-03 和 client-01 节点中输入以下命令建立集群关系。

./consul join 192.168.10.101

集群状态

在任意一台服务器中输入以下命令可查看集群中所有节点信息。

./consul members

访问

访问:http://192.168.10.101:8500/ 或者 http://192.168.10.102:8500/ 或者 http://192.168.10.103:8500/ 集群任意节点都可看到以下界面说明集群环境搭建成功。

测试

service-provider 和 service-consumer 项目的配置文件和代码都无需更改,直接启动测试。

访问:http://192.168.10.101:8500/,结果如下:

访问:http://localhost:9090/order/1 结果如下:

经过测试服务正常可用,至此 Consul 服务注册中心所有的知识点就讲解结束了。

本文采用 知识共享「署名-非商业性使用-禁止演绎 4.0 国际」许可协议

大家可以通过 分类 查看更多关于 Spring Cloud 的文章。


🤗 您的点赞转发是对我最大的支持。

📢 扫码关注 哈喽沃德先生「文档 + 视频」每篇文章都配有专门视频讲解,学习更轻松噢 ~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章