SpringCloud 多机搭建Consul集群

搭建环境:linux + centos 7 + consul 1.8.6

一、在三台linux主机上分别上传并解压consul安装包

下载地址:https://www.consul.io/downloads

consul_1.8.6_linux_amd64.zip 为安装包,使用unzip consul_1.8.6_linux_amd64.zip 命令进行解压,consul 为解压后的文件。

192.168.17.128主机:

192.168.17.130 主机:

192.168.17.131 主机:

二、以server 命令参数方式分别启动三台consul server节点(这里需要主机linux主机的防火墙问题,本测试直接关闭防火墙)

192.168.17.128主机:./consul agent -server -bootstrap-expect 2 -data-dir /etc/consul.d -node=server-1 -bind=192.168.17.128 -datacenter=wuhan -ui -client=0.0.0.0 &

192.168.17.130主机:./consul agent -server -bootstrap-expect 2 -data-dir /etc/consul.d -node=server-2 -bind=192.168.17.130 -datacenter=wuhan -ui -client=0.0.0.0 &

192.168.17.131主机:./consul agent -server -bootstrap-expect 2 -data-dir /etc/consul.d -node=server-3 -bind=192.168.17.131 -datacenter=wuhan -ui -client=0.0.0.0 &

并在 130、131 主机上执行命令 ./consul join 192.168.17.128 ,将该两台节点和128主机组成集群服务。 

组成集群后可以使用命令  consul members 查集群成员信息

三、启动本地consul client 服务

本测试client端在 win7环境下搭建 ,windows 执行文件 下载地址:https://www.consul.io/downloads 

使用命令进行启动:consul  agent -client=0.0.0.0 -data-dir /etc/consul.d -datacenter=wuhan -bind=192.168.17.1  -node=client-1 

这里要注意这个本地ip 我是在我电脑上启动的服务,server端都是在虚拟机上启动的服务,这里不能用本地的ip,需要用linux机器的 ip最后一位为1。不然本地客户端无法链接到server端的8300端口。

将该client加入到集群当中

四、通过控制台页面查看集群状态,访问地址:http://192.168.17.128:8500/ui/

访问其他两台consul server 节点控制台,同样展示三台server 节点和一台 client代理节点

五、将上一章节中的消费者和生产者工程接入到集群的consul环境中测试是否可用

下面测试用例工程全部代码为《SpringCloud Consul注册中心介绍及配置使用》文章中搭建的工程。

生产者application.yml 信息改造:

server:
  port: 9001
spring:
  application:
    name: service-product
  #consul 信息配置
  cloud:
    consul:
      host: 172.18.58.92 #consul注册中心的ip地址
      port: 8500 #consul注册中心端口
      discovery:
        register: true #是否需要注册
        instance-id: ${spring.application.name}-1 #实例id(唯一标志)
        service-name: ${spring.application.name} #服务的名称
        prefer-ip-address: true #开启ip地址注册
        ip-address: ${spring.cloud.client.ip-address} #当前服务的请求ip
        port: ${server.port} #服务的请求端口

消费者application.yml信息:

server:
  port: 8001

spring:
  application:
    name: order-service
  cloud:
    #consul 注册中心信息配置
    consul:
      host: 172.18.58.92 #consul注册中心的ip地址
      port: 8500 #consul注册中心端口
      discovery:
        register: true #是否需要注册
        instance-id: ${spring.application.name}-1 #实例id(唯一标志)
        service-name: ${spring.application.name} #服务的名称
        prefer-ip-address: true #开启ip地址注册
        ip-address: ${spring.cloud.client.ip-address} #当前服务的请求ip
        port: ${server.port} #服务的请求端口

分别启动两个工程后,通过consul server 控制台页面看下注册情况,通过不同的节点的页面可以看到两个服务都注册到了注册中心来。

访问消费者工程的调用接口,可以看到两个节点之间在consul集群下仍可以正常使用。当我们停掉一台server 节点在测试调用 仍可以正常访问。

杀掉一个server 

访问服务不受影响

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值