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中
如果有三个Eureka,则每一个EurekaServer都需要注册到其他几个Eureka服务中,例如10086,10087,10088 - 10086要注册到10087和10088上
- 10087要注册到10086和10088上
- 10088要注册到10086和10087上
二.操作实现两台Eureka相互注册
1.修改yaml配置
首先修改eureka-server的yaml配置启动一台Eureka1
因为没有10087端口的服务,所以启动后会报错,注册不上
2.启动当前Eureka-server等3个项目
3.再次修改yaml将端口反过来
4.复制eureka服务
1.右上角单击Edit Configurations
最后启动新复制的服务
5.启动后
不管是打开localhost:10086或者localhost:10087都会有两个Eureka服务
6.修改user-service的注册路径(因为多了一个eureka)
作用:万一有一个Eureka宕机了,还能够通过其他Eureka进行注册
同样的道理,consumer-demo也可以修改yaml配置注册多给Eureka路径
三.Eureka客户端
1.图解
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过后,统一进行清除。
4.Eureka的自我保护
上一篇: Java 运行 bat 文件