В текущей ситуации с использованием служб без сохранения состояния для предотвращения потери соединения требуемый дизайн использует первичный экземпляр, работающий на каждом узле (в настоящее время установлено использование 5 узлов), и мы надеемся, что каждый первичный экземпляр, работающий на каждом узле, помогает конечной точке не ошибиться из-за потери соединения. (В данном случае SignalR)
Таким образом, дизайн будет следующим: один основной и 4 реплики в каждом разделе, всего 5 разделов, работающих на 5 узлах.
Это должно было быть простой настройкой конфигурации, но оказалось сложной из-за отсутствия подробных руководств с примерами кода.
Пока что я выяснил следующее:
Установка DefaultValue="-1" для счетчика экземпляров службы обеспечивает запуск службы на каждом узле, но вам все равно нужно, чтобы она сочеталась с одним из следующих:
SingletonPartition или UniformInt64Partition или NamedPartition
SingletonPartition используется по умолчанию в службе без сохранения состояния, а сочетание DefaultValue "-1" с SingletonPartition заставляет службу работать только на одном узле, что превосходит цель использования нескольких узлов.
Итак, я попробовал что-то вроде: StatelessService InstanceCount="5" (должно быть 25, включая реплики?)
В какой-то ссылке говорится, что lowkey и highkey должны совпадать с количеством разделов, а другая ссылка, по-видимому, включает все экземпляры, включая реплики.
Мне все еще не удается получить 5 разделов, 5 узлов и каждый раздел с основной службой.