Как кластер GlassFish находит активные конечные точки IIOP?
У меня есть любопытство, и я искал его безрезультатно. В документации GlassFish написано:
Если экземпляр сервера GlassFish, на котором развернут клиент приложения, участвует в кластере, сервер GlassFish автоматически находит все активные в данный момент конечные точки IIOP в кластере. Однако клиент должен иметь как минимум две конечные точки, указанные для целей начальной загрузки, в случае сбоя одной из конечных точек.
но я спрашиваю себя, как создается этот список.
Я провел несколько тестов с автономным клиентом, который выполняется в JVM и выполняет некоторые вызовы RMI для приложения, развернутого в кластере GlassFish, и из журналов видно, что список конечных точек IIOP завершается автоматически, и он устанавливается как системное свойство com.sun.appserv.iiop.endpoints, но если я останавливаю экземпляр сервера или запускаю другой во время выполнения клиента, список остается тем, который был создан при запуске JVM.
1 ответ
Кластеризация GlassFish управляется GMS (Group Management Service), которая обычно использует UDP Multicast, но может использовать TCP там, где это недоступно.
См. Раздел 4 "Администрирование кластеров серверов GlassFish" в Руководстве по администрированию HA (PDF)
Служба управления группами (GMS) позволяет экземплярам участвовать в кластере, обнаруживая изменения в членстве в кластере и уведомляя экземпляры об изменениях. Чтобы GMS могла обнаруживать изменения в составе кластера, параметры GMS кластера должны быть правильно настроены.