Поддержка нескольких кластеров
Поддержка нескольких кластеров была удалена в версии 2. Приведенная ниже документация относится к Orleans версии 1. Orleans Версия 1.3.0 добавила поддержку федеративного нескольких Orleans кластеров в свободно подключенный мультикластик , который выступает в качестве одной службы. Многокластерные кластеры упрощают геораспространительность как службу, то есть упрощают запуск Orleans приложения в нескольких центрах обработки данных по всему миру. Кроме того, в одном центре обработки данных можно запустить несколько кластеров, чтобы повысить уровень изоляции сбоев и производительности.
Все механизмы разработаны с особым вниманием к следующим компонентам:
- Свести к минимуму связь между кластерами.
- Пусть каждый кластер работает автономно, даже если другие кластеры завершаются ошибкой или становятся недоступными.
Конфигурация и операция
Ниже описано, как настроить и управлять несколькими кластерами.
Коммуникация. Кластеры взаимодействуют через те же соединения silo-to-silo, которые используются в кластере. Для обмена сведениями о состоянии и конфигурации кластеры используют механизм сплетни и реализации каналов gossip.
Конфигурация Silo. Для настройки силосов необходимо знать, к каким кластерам они относятся (каждый кластер определяется уникальной строкой). Кроме того, каждый фрагмент должен быть настроен с помощью строка подключения, которые позволяют им подключаться к одному или нескольким каналам сплетни при запуске.
Внедрение конфигурации с несколькими кластерами. Во время выполнения оператор службы может указать и/или изменить конфигурацию с несколькими кластерами, содержащую список идентификаторов кластера, чтобы указать, какие кластеры являются частью текущего многокластика. Это делается путем вызова зерна управления в любом из кластеров.
Многокластикционные зерна
Ниже описано, как использовать функции с несколькими кластерами на уровне приложения.
Глобальные одноэлементные зерна. Разработчики могут указывать, когда и как кластеры должны координировать свои каталоги зерна в отношении определенного класса зерна. Это GlobalSingleInstanceAttribute означает, что мы хотим выполнить то же поведение, что и при выполнении Orleans в одном глобальном кластере: то есть перенаправите все вызовы к одной активации зерна. И наоборот, указывает OneInstancePerClusterAttribute , что каждый кластер может иметь свою независимую активацию. Это целесообразно, если обмен данными между кластерами не рекомендуется.
Зерна представления журнала (не в версии 1.3.0). Особый тип зерна, использующего новый API, аналогичный источникам событий, для синхронизации или сохранения состояния зерна. Его можно использовать для автоматической и эффективной синхронизации состояния зерна между кластерами и хранилищами. Так как алгоритмы синхронизации безопасны для использования с реентантными зернами и оптимизированы для использования пакетной обработки и репликации, они могут выполняться лучше, чем стандартные зерна, когда зерно часто обращается в нескольких кластерах, и (или) когда оно записывается в хранилище часто. Поддержка представлений журналов пока не входит в основную ветвь. У нас есть предварительная версия, включая примеры и немного документации в geo-orleans
ветви. В настоящее время она оценивается в рабочей среде ранним внедрением.