У нас есть три контейнера, которые подключаются к потоку Kinesis как потребители, использующие связыватель кинесиса Spring Cloud AWS.
Мы использовали группы потребителей для распределения нагрузки по трем контейнерам. Требование заключается в том, что контейнеры распределяют нагрузку, и должна быть возможность равномерно распределить нагрузку.
- Все контейнеры используют одну и ту же конфигурацию приложения с сервера конфигурации
В настоящее время у нас есть конфигурация, как показано ниже.
spring:
cloud:
stream:
bindings:
MyStream:
group: my-group
destination: stream-1
content-type: application/json
Все контейнеры потребляют одно и то же сообщение, но в разное время (с разницей от 5 до 10 минут)
Согласно документации,
Распределение статических осколков в пределах одной группы потребителей
Можно равномерно распределить осколок по всем экземплярам в пределах одной группы потребителей. Это делается путем настройки:
spring.cloud.stream.instanceCount= to number of instances
spring.cloud.stream.instanceIndex= current instance’s index
Поскольку мы используем один и тот же сервер конфигурации, не могли бы вы помочь, как обеспечить балансировку нагрузки.