ロード バランシング中に Zone Affinity を実現したいと考えています。ログでは、「DynamicServerListLoadBalancer
」が使用されていることがわかります。動作によると、ラウンド ロビン ルールがアクティブになっているようです。
オーバーライドするカスタム構成を作成しましRibbonClientConfiguration
たが、機能しません。これは正しいです?
public class CustomConfiguration {
@Autowired
private IClientConfig config;
@Autowired
ServerListFilter<Server> filter;
@Bean
public ILoadBalancer ribbonLoadBalancer(IClientConfig config,
ServerListFilter<Server> filter) {
ZoneAwareLoadBalancer<Server> balancer = new ZoneAwareLoadBalancer<>(config);
balancer.setFilter(filter);
return balancer;
}
@Bean
public ServerListFilter<Server> ribbonServerListFilter(IClientConfig config) {
ZonePreferenceServerListFilter filter = new ZonePreferenceServerListFilter();
filter.initWithNiwsConfig(config);
return filter;
}
}
@Configuration
@RibbonClient(name = "custom", configuration = CustomConfiguration.class)
public class CustomApplicationConfiguration {
}