infinispan - Синхронизация между узлами.

В моем приложении у меня есть микро-сервис, развернутый в двух экземплярах на одной машине, микро-сервис позволяет мне вставлять некоторые данные в кеш, используя infnispan. сначала я запустил только один экземпляр и поместил данные Samed в кеш, но когда я запустил второй, я заметил, что между ними есть синхронизация... это нормально, так как второй - присоединение к кластеру. (для вашей информации, я использую jgroups для кластеризации). поэтому, когда я вызываю сервис для извлечения тех же данных для второго экземпляра, он не отвечает, потому что он находится в фазе синхронизации, у него нет данных. но когда это заканчивается, он возвращает мне ответ;

поэтому мой вопрос: как я могу узнать, что синхронизация между этими двумя экземплярами прекращена? есть ли способ в бесконечности, чтобы уведомить меня, что синхронизация между узлами в бесконечности закончена?

Спасибо за помощь

1 ответ

Эта синхронизация называется "передачей состояния", и вы можете сделать так, чтобы она была блокируемой (то есть узлы ожидают первоначальной передачи, прежде чем стать отзывчивой) или неблокирующей (что означает, что они немедленно отвечают на запросы, извлекают записи удаленно, если они не были перенесены еще). Вы можете получить событие для завершения передачи состояния, зарегистрировав прослушиватель кэша для DataRehashedEvent

Вы можете сделать передачу состояния неблокируемой, установив для атрибута "await-initial-Transfer" значение false в конфигурации передачи состояния кэша.

Другие вопросы по тегам