问题: 现在Eureka和Client是1对1,但是Eureka挂了,就不能用了。

如何解决呢,创建多个Erurka。并且Eureka进行相互注册。如下图

Eureka的高可用-LMLPHP

怎么相互注册呢

1. 创建两个Eureka

一个端口为8761

Eureka的高可用-LMLPHP

另外一个端口为8762

Eureka的高可用-LMLPHP

2. 启动EurekaApplication和EurekaApplication2

1) EurekaApplication启动

然后在EurekaApplication 注释掉8761端口,修改defaultZone的端口为8762

Eureka的高可用-LMLPHP

将EurekaApplication注册到8762

2) EurekaApplication2启动

将 EurekaApplication2注册到8761端口

Eureka的高可用-LMLPHP

3.结果:

Client的配置不变

Eureka的高可用-LMLPHP

但是注册中心的8761有Client注册过来, 8732也有Client注册过来

Eureka的高可用-LMLPHP

8732的Client注册过来

Eureka的高可用-LMLPHP

原因是相互注册后,两个的信息有相互交换。

4. 停掉EurekaApplication后, EurekaApplication2还是可以查看到Client注册在上面

5. 如果写成8761和8762  8761挂了后,还是可以注册成功的。

Eureka的高可用-LMLPHP

6. 如果以后项目扩大到三个Eureka呢,那就让三个Eureka进行相互注册

Eureka的高可用-LMLPHP

如下图配置 EurekaApplication3的 defaultZone设置为8761和8762 。 同理EurekaApplication2和EurekaApplication也做相应的配置

Eureka的高可用-LMLPHP

7. 服务发现的两种方式

客户端发现和服务端发现

客户端发现: Eureka

服务端发现: Nginx, Zookeeper, Kubernetes

04-24 17:23