Предполагается, что вы вызываете свои услуги из-за пределов кластера. Если да, ваша проблема не специфична для Service Fabric, это Azure VMSS + LB.
Сервисная ткань работает поверх набора шкал виртуальных машин, эти виртуальные машины создаются за балансировщиком нагрузки, когда клиент подключается к вашей службе, они создают соединение через балансировщик нагрузки к вашему сервису, всякий раз, когда соединение открыто , балансировщик нагрузки назначает одну целевую виртуальную машину для обработки вашего запроса, и любой запрос, сделанный вашим клиентом при использовании одного и того же соединения (поддерживается в режиме ожидания), будет обрабатываться одним и тем же узлом, поэтому ваш груз переходит к одному узлу.
LB не будет обрабатывать запросы, потому что они используют одно и то же соединение, это ограничение (функция) LB, чтобы обойти эту проблему, вы должны открыть несколько подключений или использовать несколько клиентов (экземпляры).
Это режим распределения по умолчанию (Hash-based). Вы должны также проверить правила маршрутизации в LB, чтобы проверить, является ли режим распространения Hash-based (5 tuple = ip + port), или если это Режим аффинации IP (только ip), в противном случае несколько соединений от одного и того же IP все равно будет привязан к одному узлу.
Источник: Azure Load Balaner Distribution Mode
Я использовал один экземпляр прокси для всех вызовов, и я думаю, именно поэтому я не смог попасть в другие узлы. Вы сказали: «Это будет дорого, если вы это сделаете». Я использую веб-службу, и конечная точка Api начнет создавать прокси-сервер, и эта конечная точка будет сильно ударить. Не рекомендуется ли это? @JoshL – Krishh
Ты на правильном пути, да. Единственное, что следует учитывать, это то, что каждый экземпляр без сохранения в кластере будет иметь свою собственную уникальную конечную точку, поэтому, если вы хотите, чтобы запросы обрабатывались каким-либо экземпляром, вам понадобится какой-то механизм для обеспечения того, чтобы это произошло. SF не делает этого для вас (пока). Эти два подхода, о которых я упоминал выше, являются жизнеспособными для этого вариантами. – JoshL
Если у меня есть веб-api и регулярная служба без состояния в кластере, мне все равно нужен балансировщик нагрузки при выполнении вызовов из веб-api в службу, чтобы не застревать с использованием одного узла при каждом вызове? –