Eureka高可用方案
来源:3-4 Eureka的高可用
水煮米波
2018-10-23
师兄,我在部署eureka高可用的时候,采用nginx做为负载均衡,后面挂多个eureka server。
业务服务A、B以及网关注册的地址就是nginx的地址,请见下图。
这样就不用把eureka server的url直接写死在defaultZone里,实现eureka server的水平扩展。
这个方案是否可行?
我对方案进行了测试,结果如下:
ClientA通过负载域名注册,通过观察后台,注册到了8761上,当Eureka同步完后,我把8761停掉,此时ClientA会不断报错。我在nginx上把8761删掉后,不再报错。nginx用的是普通轮训机制,没有加权,按理说应该自动剔除不可用服务的,一直没想明白怎么回事?
…………此处省略Exception………………
2018-10-23 17:54:40.719 WARN 205084 — [tbeatExecutor-0] c.n.d.s.t.d.RetryableEurekaHttpClient : Request execution failed with message: java.net.SocketTimeoutException: Read timed out
2018-10-23 17:54:40.733 INFO 205084 — [tbeatExecutor-0] c.n.d.s.t.d.RetryableEurekaHttpClient : Request execution succeeded on retry #1
1回答
-
廖师兄
2018-10-24
你把8761停掉,为什么nginx就会知道down掉并且自动剔除呢?你再去看看nginx的负载均衡机制
032018-10-26
SpringCloud Finchley(M2+RELEASE+SR2)微服务实战
5668 学习 · 2489 问题
相似问题