0

据我了解,在 Zuul 代理服务器中使用默认负载均衡器作为 DynamicServerListLoadBalancer,它使用ZoneAffinityServerListFilter规则来选择服务器。但是,有什么方法可以自定义zuul代理服务器中使用的负载均衡器

我尝试添加以下配置以更改负载均衡器规则:

eureka.client.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RoundRobinRule

但似乎它仍然坚持默认配置。

任何建议都将受到高度赞赏。

4

1 回答 1

4

要使用配置更改负载平衡规则,您应该定义功能区配置,如下所示。

your_ribbonclient_name.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RoundRobinRule

your_ribbonclient_name应该替换为适合您配置的。在 Zuul 中,ribbon 客户端名称与每个路由的服务 ID 相同。

您还可IRule以为负载平衡规则提供自己的 bean,@RibbonClient如下所示。

@RibbonClient(name = "your_ribbonclient_name", configuration = YourConfigurationClass.class)

您可以在此处找到示例代码

如果要将 Ribbon 配置应用于服务器中的整个 Ribbon 客户端,可以使用@RibbonClients(not @RibbonClient) 来实现。

@RibbonClients(defaultConfiguration = DefaultRibbonConfig.class)

您可以在此处找到示例代码,相关问题在此处

于 2017-06-07T07:42:41.530 回答