У меня есть приложение с архитектурой пружинных микросервисов, но мы не используем eureka или какие-либо другие службы. Мое требование - создать динамический балансировщик нагрузки. Итак, для каждого сервиса будет уникальный и динамичный набор серверов.
Конфигурация будет примерно такой:
ribbon:
listOfServices: say-hello-service, say-hi-service
Чего я не хочу, так это повторять аннотацию @RibbonClient
для каждого клиента службы, который я буду использовать.
Я обнаружил, что RibbonClientSpecification
является ключевым компонентом фабрики лент. Если я зарегистрирую его с именами say-hello-service.RibbonClientSpecification
и say-hi-service.RibbonClientSpecification
, он попытается вызвать соответствующую службу, даже если у меня нет @RibbonClient
и какой-либо конфигурации, связанной с лентой. Так что мои вопросы
- Почему аннотация
@RibbonClient
необходима, поскольку мы можем идентифицировать сервисы по определенным свойствам? Мне кажется, что это избыточно, что мы должны определить свойства ленты в файле свойств, а также иметь аннотацию с тем же именем.
- Как зарегистрировать балансировщики нагрузки для каждого клиента ленты, который я создаю динамически?
- Каково право динамически создавать несколько клиентов ленты, не имея нескольких классов конфигурации
@RibbonClient
?