Контролируемое разбиение и MapStore - PullRequest
0 голосов
/ 06 июня 2019

Допустим, у меня есть несколько участников (серверов) Hazelcast по всему миру (например, в Германии, России и т. Д.).

Требовалось хранить / разбивать данные в базе данных по регионам, и все данные должны быть доступныс любого сервера через IMap при поддержке MapStore.

Я недавно прочитал эту статью , которая удовлетворяет моим требованиям, но я не уверен, как поведет себя MapStore.

Критическим моментом является то, что если member1 (например, Россия) запрашивает данные у IMap с ключом, принадлежащим member2 (например, Германия), с какой стороны будет вызываться MapStore.load()?

1 Ответ

1 голос
/ 06 июня 2019

Не следует разделять элементы одного кластера по разным центрам обработки данных.Члены кластера зависят от регулярного сообщения сердцебиения для определения работоспособности кластера;глобальные сети не могут надежно доставить их согласованным образом, и у вас почти наверняка будут проблемы с сетевым разделением (синдром расщепления мозга).

Каждый центр обработки данных (Германия, Россия и т. д.) должен иметь отдельный кластер с регионом-специфичные карты.Затем эти карты можно реплицировать (репликация WAN) в удаленные центры обработки данных как для аварийного восстановления, так и для обеспечения географически близкого сервера для поддержки пользователей в этом регионе, которым необходим доступ к данным другого региона.

Поскольку данные в базе данных уже разбиты по регионам, совпадение с этим разделением на стороне Hazelcast означает, что MapLoader всегда будет загружаться из базы данных в одном и том же месте.

...