2、Eureka 集群实例


在互联⽹应⽤中,服务实例很少有单个的。

即使微服务消费者会缓存服务列表,但是如果EurekaServer只有⼀个实例,该实例挂掉,正好微服务消费者本地缓存列表中的服务实例也不可⽤,那么这个时候整个系统都受影响。

在⽣产环境中,我们会配置Eureka Server集群实现⾼可⽤。Eureka Server集群之中的节点通过点对点(P2P)通信的⽅式共享服务注册表。我们开启两台 EurekaServer 以搭建集群。
在这里插入图片描述

本次集群测试使用修改hosts文件的方式

在这里插入图片描述

修改hosts文件

win10下路径为【C:\Windows\System32\drivers\etc】

#eureka集群测试
127.0.0.1 LagouCloudEurekaServerA
127.0.0.1 LagouCloudEurekaServerB

一、复制两份eureka-server代码

1、复制两份单例实例代码

单例实例
然后修改端口号等相关信息
在这里插入图片描述

2、修改application.yml

①8762

server:
  port: 8762
spring:
  application:
    # # 应⽤名称,会在Eureka中作为服务的id标识(serviceId)
    name: lagou-cloud-eureka-server
# eureka 客户端配置(和Server交互),Eureka Server 其实也是一个Client
eureka:
  instance:
    hostname: LagouCloudEurekaServerA
  client:
    service-url: #客户端与EurekaServer交互的地址,如果是集群,也需要写其 它Server的地址
      defaultZone: http://LagouCloudEurekaServerB:8763/eureka
    register-with-eureka: true # 集群模式下可以改成true
    fetch-registry: true # 集群模式下可以改成true

②8763

server:
  port: 8763
spring:
  application:
    # # 应⽤名称,会在Eureka中作为服务的id标识(serviceId)
    name: lagou-cloud-eureka-server
# eureka 客户端配置(和Server交互),Eureka Server 其实也是一个Client
eureka:
  instance:
    hostname: LagouCloudEurekaServerB
  client:
    service-url: #客户端与EurekaServer交互的地址,如果是集群,也需要写其 它Server的地址
      defaultZone: http://LagouCloudEurekaServerA:8762/eureka
    register-with-eureka: true # 集群模式下可以改成true
    fetch-registry: true # 集群模式下可以改成true

3、分别启动两个启动类之后访问

http://lagoucloudeurekaservera:8762/
在这里插入图片描述

http://lagoucloudeurekaserverb:8763/
在这里插入图片描述

二、同一个eureka-server中配置集群

在这里插入图片描述

(一)修改lagou-cloud-eureka-server配置文件

spring:
  application:
    # # 应⽤名称,会在Eureka中作为服务的id标识(serviceId)
    name: lagou-cloud-eureka-server
---
#第⼀个profile,后期启动spring-boot项⽬时,可通过命令参数指定
spring:
  profiles: LagouCloudEurekaServerA
server:
  port: 8761
eureka:
  instance:
    hostname: LagouCloudEurekaServerA
  client:
    service-url: #客户端与EurekaServer交互的地址,如果是集群,也需要写其 它Server的地址
      # defaultZone: http://${spring.eureka.instance.hostname}:${server.port}/eureka
      defaultZone: http://LagouCloudEurekaServerB:8762/eureka
    register-with-eureka: true
    fetch-registry: true

---
#第二个profile,后期启动spring-boot项⽬时,可通过命令参数指定
spring:
  profiles: LagouCloudEurekaServerB
server:
  port: 8762
eureka:
  instance:
    hostname: LagouCloudEurekaServerB
  client:
    service-url: #客户端与EurekaServer交互的地址,如果是集群,也需要写其 它Server的地址
      # defaultZone: http://${spring.eureka.instance.hostname}:${server.port}/eureka
      defaultZone: http://LagouCloudEurekaServerA:8761/eureka
    register-with-eureka: true
    fetch-registry: true

#register-with-eureka 和  fetch-registry,在单节点时设置为了 false,
# 因为只有⼀台 Eureka Server,并不需要⾃⼰注册⾃⼰,⽽现在有了集群,可以在集群的其他节点中注册本服务

说明:

  • 在 ⼀个实例中,把另外的实例作为了集群中的镜像节点,那么这个http://LagouCloudEurekaServerB:8762/eureka URL 中的
    LagouCloudEurekaServerB 就要和其它的profile 中的eureka.instance.hostname 保持⼀致。
  • register-with-eureka 和 fetch-registry 在单节点时设置为了 false, 因为只有⼀台 Eureka Server,并不需要⾃⼰注册⾃⼰,⽽现在有了集群,可以在集群的其他节点中注册本服务

(二)分别启动Application

在这里插入图片描述
在这里插入图片描述

(三)浏览器访问观察

分别访问

  • http://lagoucloudeurekaservera:8761/
  • http://lagoucloudeurekaserverb:8762/

会发现注册中⼼ LAGOU-CLOUD-EUREKA-SERVER 已经有两个节点,并且 registered-replicas (相邻集群复制节点)中
已经包含对⽅
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值