美文网首页Spring CloudSpring Cloud
Spring Cloud 系列之 Consul 注册中心(二)

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

作者: 哈喽沃德先生 | 来源:发表于2020-04-17 11:09 被阅读0次

    本篇文章为系列文章,未读第一集的同学请猛戳这里: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 的文章。

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

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

    相关文章

      网友评论

        本文标题:Spring Cloud 系列之 Consul 注册中心(二)

        本文链接:https://www.haomeiwen.com/subject/dslevhtx.html