Java高级教程之SpringCloud-5:多个节点Eureka集群

Eureka作为注册中心如果只有单点,可能会发生单点故障导致注册服务不可用,考虑这点可以建立多个Eureka服务。

 

再新建一个Maven工程,同样在pom.xml中加入Eureka服务端的依赖包,再增加主入口类ApplicationMain。在这个新工程的application.yml中,eureka的端口设置为8101。

 

Java高级教程之SpringCloud-5:多个节点Eureka集群

 

这次我们把register-with-eureka设置为true,注册到先前的Eureka,也就是新的Eureka注册在另一个端口为8100的Eureka上面。

 

访问一下Eureka的服务地址http://localhost:8100,就会看到Application中列表有三个服务注册。

Java高级教程之SpringCloud-5:多个节点Eureka集群

 

这时如果再把另一个端口为8100的Eureka注册到新的Eureka,也就是两个Eureka互相注册和发现,那就产生了集群的效果。

 

Java高级教程之SpringCloud-5:多个节点Eureka集群

 

现在order-servicet和product-service都可以注册到两个Eureka服务,只需要把order-servicet和product-service两个客户微服务的application.yml改一下,把defaultZone的值变为两个用逗号隔开的地址。

Java高级教程之SpringCloud-5:多个节点Eureka集群

Java高级教程之SpringCloud-5:多个节点Eureka集群

 

分别访问两个Eureka地址,可以看到各自都有三个服务注册。

http://localhost:8100

http://localhost:8101

 

现在停掉另一个Eureka服务,只保留新的那个,再访问订单地址,还是可用的。

http://localhost:8180/order/1

结果:

 

{"id":1,"name":"mobile order","product":{"id":1,"name":"mobile"}}

 

Java高级教程之SpringCloud-5:多个节点Eureka集群