【问题标题】:Filter services based on Eureka metadata with Zuul使用 Zuul 基于 Eureka 元数据过滤服务
【发布时间】:2021-11-26 01:30:58
【问题描述】:

我们在环境中使用 Spring Cloud Netflix Zuul 和 Eureka。

我了解 Ribbon 从 Eureka 获取指定 serviceId 的服务器列表。在我们的例子中,我们有 4 个服务容器,其中一个容器是执行资源密集型任务的主容器。 我想从服务器列表中过滤掉主容器,以便 Ribbon 不会向容器转发任何请求。

如何过滤?

感谢任何帮助。

【问题讨论】:

  • 没有开箱即用的东西。你需要写一些自定义的东西

标签: spring-cloud netflix-eureka netflix-zuul spring-cloud-netflix netflix-ribbon


【解决方案1】:

我能够通过创建新的自定义 IRule 进行过滤

 homeautomation.ribbon.NFLoadBalancerRuleClassName=com.example.CustomZoneAvoidanceRule

并扩展默认的 ZoneAvoidanceRule

public class CustomZoneAvoidanceRule extends ZoneAvoidanceRule {

@Override
public Server choose(final Object key) {
    final Server server = super.choose(key);
    // code to skip specific instance based on eureka metadata.
    return server;
}

}

【讨论】:

    猜你喜欢
    • 2016-12-23
    • 2020-04-15
    • 2018-03-17
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 2018-01-03
    • 1970-01-01
    相关资源
    最近更新 更多