为了账号安全,请及时绑定邮箱和手机立即绑定

即使在我停止注册的服务器之后,Eureka 客户端仍然可以工作并相互通信。如何?

即使在我停止注册的服务器之后,Eureka 客户端仍然可以工作并相互通信。如何?

至尊宝的传说 2021-08-19 16:38:22
我创建了一个 Eureka 服务器并用它注册了两个客户端。客户之间沟通顺畅。之后,我停止了 Eureka 服务器,但我的两个客户端仍然可以顺利地相互通信。这怎么可能?我在第一个客户端中使用以下代码与第二个客户端进行通信。ServiceInstance instance = loadbalancerclient.choose(secondService);URI uri=URI.create(String.format("http://%s:%s"+"/test",instance.getHost(),instance.getPort()));ResponseEntity<String> result = restTemplate.getForEntity(uri.toString(),String.class);由于我没有对任何 URL 进行硬编码,而是使用 Eureka 服务器中第二个客户端的注册名称,因此我不希望它在服务器关闭时工作。有人可以向我解释为什么会发生这种情况吗?
查看完整描述

2 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

Eureka 不处理两个服务器之间的通信,只处理注册。这意味着一个服务使用 Eureka 只是为了找出另一个服务的地址。之后直接在两个服务之间进行通信,没有 Eureka。

如果 Eureka 宕机,客户端使用远程服务地址的缓存副本,这有利于弹性和临时网络故障。

如果你稍微考虑一下,为什么它不起作用?如果 Eureka 宕机,并不意味着远程服务也宕机了,或者它的物理地址发生了变化。


查看完整回答
反对 回复 2021-08-19
?
守候你守候我

TA贡献1802条经验 获得超10个赞

从尤里卡文档

获取注册表

Eureka 客户端从服务器获取注册表信息并将其缓存在本地。之后,客户端使用该信息来查找其他服务。通过获取上次获取周期和当前获取周期之间的增量更新,此信息会定期(每 30 秒)更新一次。增量信息在服务器中保存的时间更长(大约 3 分钟),因此增量提取可能会再次返回相同的实例。Eureka 客户端自动处理重复信息。

获取增量后,Eureka 客户端通过比较服务器返回的实例计数来与服务器协调信息,如果由于某种原因信息不匹配,则再次获取整个注册表信息。Eureka 服务器缓存 deltas、整个注册表和每个应用程序的压缩负载,以及未压缩的信息。有效负载还支持 JSON/XML 格式。Eureka 客户端使用 jersey apache 客户端获取压缩 JSON 格式的信息。


查看完整回答
反对 回复 2021-08-19
  • 2 回答
  • 0 关注
  • 376 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信