如何在 Ribbon 和 FeignClient 中暂时禁用 Eureka Server 支持

How to Temporarily Disable Eureka Server support in Ribbon and FeignClient

我有两个微服务(car-management-service & rent- management-service), 在 rent-management-service 我打电话给 car-management-service 在 Eureka Discovery Server 的帮助下通过 Ribbon& FeignClient。它运行良好。

我已经在端口 (8100,8101,8102) 上启动了三个 car-management-service 运行 实例, 而Eureka完美地一个接一个地提供了这三个实例。

现在我想尝试是否可以通过禁用(临时 - 只是为了测试是否可能)Eureka 并提供 [=28 的直接 url 来限制它仅调用其中两个实例=]car-management-service 个实例,同时仍然保留 Ribbon 和 FeignClient。

租金管理服务

application.yml部分
eureka:
  client:
    service-url:
      defaultZone: ${EUREKA_URI:http://localhost:8761/eureka}
car-management-service:
  ribbon:
    eureka:
      enabled: false
    listOfServers: localhost:8100, localhost:8101
    #listOfServers: localhost:8100, localhost:8101, localhost:8102
    ServerListRefreshInterval: 1000

汽车管理服务

application.yml部分
server:
  port: 8100
eureka:
  client:
    enabled: true
    service-url:
      defaultZone: ${EUREKA_URI:http://localhost:8761/eureka}  

即使我在 rent-management-service 中禁用了 Eureka 以发现 car -management-service 实例并硬编码三个 运行 car-management-service[=57= 中的两个] 个实例,rent-management-service 仍然选择所有三个实例。

为什么会这样?是application.yml配置有问题还是rent-management-service还是三个都接car-management-service 实例,因为它们在 pom.xml?

中具有 Eureka 服务器依赖项

如果我理解正确,您希望汽车管理服务的第三个实例不从发现服务获取流量。不是吗?你 运行 3 个实例,但你想让一个远离尤里卡? 你可以这样做。 运行 2 个来自汽车管理服务的实例,第 3 个实例在下方添加 属性

eureka:
  client:
    fetch-registry: false
    register-with-eureka: false

在这种情况下,第 3 个服务将不会向 eureka 注册。