欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringCloud模拟微服务3-高可用Eureka

程序员文章站 2022-07-12 23:39:12
...

SpringCloud模拟微服务3-高可用Eureka

一.高可用的Eureka Server

Eureka Server即服务的注册中心,在上一篇的案例中,我们只编写了一个Eureka Server.事实上EurekaServer也可以是一个集群,形成高可用的Eureka中心

  • 服务同步
    多个Eureka Server之间也会相互注册为服务,当服务提供者注册到Eureka Server集群中的某个点时,该节点会把服务的信息同步给集群中的每个节点,从而实现数据同步。因此,无论客户端访问到Eureka Server集群中的任一节点,都可以获取到完整的服务列表信息。
    而作为客户端,需要把信息注册到每个Eureka中
    SpringCloud模拟微服务3-高可用Eureka
    如果有三个Eureka,则每一个EurekaServer都需要注册到其他几个Eureka服务中,例如10086,10087,10088
  • 10086要注册到10087和10088上
  • 10087要注册到10086和10088上
  • 10088要注册到10086和10087上

二.操作实现两台Eureka相互注册

1.修改yaml配置

首先修改eureka-server的yaml配置启动一台Eureka1
SpringCloud模拟微服务3-高可用Eureka
因为没有10087端口的服务,所以启动后会报错,注册不上

2.启动当前Eureka-server等3个项目

SpringCloud模拟微服务3-高可用Eureka

3.再次修改yaml将端口反过来

SpringCloud模拟微服务3-高可用Eureka

4.复制eureka服务

1.右上角单击Edit Configurations

SpringCloud模拟微服务3-高可用Eureka
SpringCloud模拟微服务3-高可用Eureka
最后启动新复制的服务

5.启动后

不管是打开localhost:10086或者localhost:10087都会有两个Eureka服务
SpringCloud模拟微服务3-高可用Eureka

6.修改user-service的注册路径(因为多了一个eureka)

SpringCloud模拟微服务3-高可用Eureka
作用:万一有一个Eureka宕机了,还能够通过其他Eureka进行注册
同样的道理,consumer-demo也可以修改yaml配置注册多给Eureka路径

三.Eureka客户端

1.图解

SpringCloud模拟微服务3-高可用Eureka

2.consumer-demo拉取服务列表的周期

consumer-demo下的application.yaml

eureka:
    client:
        registry-fetch-interval-seconds: 3  #每3秒拉取一次

3.失效剔除(配置在eureka的yaml中)

eureka:
    server: eviction-interval-timer-in-ms: 60  #剔除时间(这里的单位是毫秒)

意思是:如果90秒认为一个服务宕机了,不会立即清除,而是等待60毫秒,在这个过程中如果有其他的服务宕机,60过后,统一进行清除。
SpringCloud模拟微服务3-高可用Eureka

4.Eureka的自我保护

SpringCloud模拟微服务3-高可用Eureka

相关标签: Eureka注册中心