Контейнер всегда достигает одного и того же бэкенда в реплицируемых сервисах - PullRequest
1 голос
/ 25 апреля 2019

Я развертываю 3-х уровневое приложение с использованием Docker Swarm, похожее на:

                           --> BACK01-01 --    --> BACK02-01
                           |              |    |  
 FRONTEND-01 ----------------> BACK01-02 --------> BACK02-02
                           |              |    |
                           --> BACK01-03 --    --> BACK02-03


  Frontend                  Back Service 01    Back Service 02

Это рой из 3 узлов, где каждая служебная задача *-01 выполняется на manager-node, каждая служебная задача *-02 выполняется на worker-node-01, а каждая служебная задача *-03 выполняется на worker-node-02

Все коммуникации между службами используют GRPC и создают новое соединение для каждого запроса.

Все, что я хочу с этим, - это распределить нагрузку по каждой реплике.

Последовательно я сделал запрос к frontend, который делает запрос к back01, который делает запрос к back02. Но после 50 запросов все внутренние запросы, направленные к back01-03 и back02-03, а другие никогда не были достигнуты.

Я использовал конфигурацию службы по умолчанию, и стек был развернут с использованием portainer GUI

Есть что-то, чего я не понимаю?

P.S .: Я проверил баланс нагрузки службы с помощью простого сервера HTTP и GRPC, возвращающего идентификатор контейнера, с 4 репликами в одном узле, и каждый из них возвращал последовательно.

...