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