Есть ли у однокомпонентных сервисов Service Fabric простои при масштабировании? - PullRequest
0 голосов
/ 04 февраля 2019

Мы используем кластер Service Fabric для развертывания микросервисов без сохранения состояния.Один из микросервисов выполнен в виде синглтона.Это означает, что он предназначен для развертывания только на одном узле.

Но означает ли это, когда мы увеличиваем или уменьшаем набор масштабирования виртуальной машины (горизонтальное масштабирование), сервис будет недоступен?Или об этом заботится кластер Service Fabric?

1 Ответ

0 голосов
/ 04 февраля 2019

Существуют две основные концепции, которые следует учитывать применительно к сервисам в сервисной структуре, в основном, но не ограничиваясь, Stateful Services. Разделы и Реплики .

Разделы определяют подход, используемый для разделения данных на группы данных, они определены as:

  • Ranged разбиение (иначе называется UniformInt64Partition).Используется для разделения данных на диапазон целочисленных значений.
  • Именованный разбиение.Приложения, использующие эту модель, обычно имеют данные, которые можно объединить в рамках ограниченного набора.Некоторыми распространенными примерами полей данных, используемых в качестве именованных разделов, могут быть регионы, почтовые индексы, группы клиентов или другие бизнес-границы.
  • Singleton разбиение.Одноэлементные разделы обычно используются, когда сервис не требует какой-либо дополнительной маршрутизации.Например, службы без сохранения состояния используют эту схему разделения по умолчанию.

Когда вы используете Singleton для сервисов с отслеживанием состояния, предполагается, что данные управляются как одна группа, фактический раздел данных не используется.

Реплики определил количество копий, которое будет иметь раздел вокруг кластера, чтобы предотвратить потерю данных при сбое первичной реплики.

В итоге,

Если вы используете одноэлементный раздел, проблем не должно быть, если количество реплик не менее 3.

Это означает, что после обновления одного NODE реплика, размещенная на этом узле, будетперемещен на другой узел, если эта перемещаемая реплика является первичной репликой, она будет понижена до вторичной, вторичная будет переведена в первичную, а затем удаленная реплика отключится и реплицируется на другой узел.

Третья реплика необходима в случае сбоя реплики во время обновления, а третья повышается до основной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...