Поддержка нескольких кластеров

Поддержка нескольких кластеров была удалена в версии 2. Приведенная ниже документация относится к Orleans версии 1. Orleans Версия 1.3.0 добавила поддержку федеративного нескольких Orleans кластеров в свободно подключенный мультикластик , который выступает в качестве одной службы. Многокластерные кластеры упрощают геораспространительность как службу, то есть упрощают запуск Orleans приложения в нескольких центрах обработки данных по всему миру. Кроме того, в одном центре обработки данных можно запустить несколько кластеров, чтобы повысить уровень изоляции сбоев и производительности.

Все механизмы разработаны с особым вниманием к следующим компонентам:

  1. Свести к минимуму связь между кластерами.
  2. Пусть каждый кластер работает автономно, даже если другие кластеры завершаются ошибкой или становятся недоступными.

Конфигурация и операция

Ниже описано, как настроить и управлять несколькими кластерами.

Коммуникация. Кластеры взаимодействуют через те же соединения silo-to-silo, которые используются в кластере. Для обмена сведениями о состоянии и конфигурации кластеры используют механизм сплетни и реализации каналов gossip.

Конфигурация Silo. Для настройки силосов необходимо знать, к каким кластерам они относятся (каждый кластер определяется уникальной строкой). Кроме того, каждый фрагмент должен быть настроен с помощью строка подключения, которые позволяют им подключаться к одному или нескольким каналам сплетни при запуске.

Внедрение конфигурации с несколькими кластерами. Во время выполнения оператор службы может указать и/или изменить конфигурацию с несколькими кластерами, содержащую список идентификаторов кластера, чтобы указать, какие кластеры являются частью текущего многокластика. Это делается путем вызова зерна управления в любом из кластеров.

Многокластикционные зерна

Ниже описано, как использовать функции с несколькими кластерами на уровне приложения.

Глобальные одноэлементные зерна. Разработчики могут указывать, когда и как кластеры должны координировать свои каталоги зерна в отношении определенного класса зерна. Это GlobalSingleInstanceAttribute означает, что мы хотим выполнить то же поведение, что и при выполнении Orleans в одном глобальном кластере: то есть перенаправите все вызовы к одной активации зерна. И наоборот, указывает OneInstancePerClusterAttribute , что каждый кластер может иметь свою независимую активацию. Это целесообразно, если обмен данными между кластерами не рекомендуется.

Зерна представления журнала (не в версии 1.3.0). Особый тип зерна, использующего новый API, аналогичный источникам событий, для синхронизации или сохранения состояния зерна. Его можно использовать для автоматической и эффективной синхронизации состояния зерна между кластерами и хранилищами. Так как его алгоритмы синхронизации безопасны для использования с реентантными зернами и оптимизированы для использования пакетной обработки и реплика tion, она может выполняться лучше, чем стандартные зерна, когда зерно часто обращается в нескольких кластерах, и (или) когда оно записывается в хранилище часто. Поддержка представлений журналов пока не входит в основную ветвь. У нас есть предварительная версия, включая примеры и немного документации в geo-orleans ветви. В настоящее время она оценивается в рабочей среде ранним внедрением.