spring-boot - 为什么微服务接受请求事件,尽管它在尤里卡服务器注册表中关闭?
问题描述
我有几个微服务注册到 Eureka Server( http://localhost:10100 )
我正在使用以下 REST API 从 eureka 服务器中删除实例
参考:https ://github.com/Netflix/eureka/wiki/Eureka-REST-operations
1)从尤里卡服务器中删除实例(删除)(它删除实例但再次重新注册..)
http://localhost:10100/eureka/apps/MICRO-SERVICE-1/localhost:micro-service-1:10501
2) 更新服务状态为DOWN/OUT_OF_SERVICE
http://localhost:10100/eureka/apps/MICRO-SERVICE-1/localhost:micro-service-1:10501/status?value=DOWN
因此,即使 micro-service-1 状态设置为 DOWN/OUT_OF_SERVICE 我也可以向 micro-service-1 ( http://localhost:10501/MyService/hello )发送请求
相反,它应该不可用,但它接受请求给予响应。
那么,为什么微服务接受请求事件,尽管它的状态在尤里卡服务器注册表中是关闭的?
尤里卡服务器 application.yml 文件
server:
port: 10100
address: localhost
eureka:
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://localhost:10100/eureka/
instance:
prefer-ip-address: true
server:
enable-self-preservation: true
wait-time-in-ms-when-sync-empty: 0
Eureka Client (micro-service-1) application.yml 文件
server:
port: 10501
address: localhost
eureka:
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://localhost:10100/eureka/
instance:
hostname: localhost
prefer-ip-address: true
解决方案
您的服务没有内置的方式来解释您已在 Eureka 中将其删除,因此通过直接点击其端口来调用您的服务将始终有效。
要利用目录对服务器状态和多个服务器实例的了解,您需要从 API(例如功能区)调用您的服务,该 API可以从目录构建软件负载平衡器。或者通过Zuul API 代理进行调用,该代理本质上只是一个在内部围绕功能区构建的微服务。
在所有这些情况下,请记住云微服务最终是一致的。也就是说,您所做的更改可能不会立即可用,并且需要时间才能传播到正在运行的服务。
推荐阅读
- javascript - 映射 JSON 字段
- ios - 自定义单元格未在 UITabelView 中显示数据未使用情节提要
- powerbi - 如何编写一个度量来显示总数的百分比?
- php - 如何在选择选项中隐藏提前 4 小时
- c# - 为什么附件不显示在使用 Mimekit 发送的电子邮件中?
- java - 如何在 Java Android 的 Firebase 中找到子子项
- ios - MissingPluginException 在 iOS 通道上找不到方法 copyText 的实现
- python - 我想明智地交换行条件
- javascript - 如何在 ReactJS 中的数据网格中将超链接呈现为网格数据
- android - 蓝牙 LE 连接是否在 Android 上进行了身份验证?