Существуют две основные концепции, которые следует учитывать применительно к сервисам в сервисной структуре, в основном, но не ограничиваясь, Stateful Services. Разделы и Реплики .
Разделы определяют подход, используемый для разделения данных на группы данных, они определены as:
- Ranged разбиение (иначе называется UniformInt64Partition).Используется для разделения данных на диапазон целочисленных значений.
- Именованный разбиение.Приложения, использующие эту модель, обычно имеют данные, которые можно объединить в рамках ограниченного набора.Некоторыми распространенными примерами полей данных, используемых в качестве именованных разделов, могут быть регионы, почтовые индексы, группы клиентов или другие бизнес-границы.
- Singleton разбиение.Одноэлементные разделы обычно используются, когда сервис не требует какой-либо дополнительной маршрутизации.Например, службы без сохранения состояния используют эту схему разделения по умолчанию.
Когда вы используете Singleton для сервисов с отслеживанием состояния, предполагается, что данные управляются как одна группа, фактический раздел данных не используется.
Реплики определил количество копий, которое будет иметь раздел вокруг кластера, чтобы предотвратить потерю данных при сбое первичной реплики.
В итоге,
Если вы используете одноэлементный раздел, проблем не должно быть, если количество реплик не менее 3.
Это означает, что после обновления одного NODE реплика, размещенная на этом узле, будетперемещен на другой узел, если эта перемещаемая реплика является первичной репликой, она будет понижена до вторичной, вторичная будет переведена в первичную, а затем удаленная реплика отключится и реплицируется на другой узел.
Третья реплика необходима в случае сбоя реплики во время обновления, а третья повышается до основной.