Возможно, самым простым и простым способом является запуск «встроенного» локатора на сервере. Я часто использую эту технику при тестировании или запуске автономного кластера с 1 или более серверами GemFire, настроенными на Spring.
конфигурация выглядит следующим образом ...
<util:properties id="gemfireProperties">
<prop key="name">GemFireServerWithEmbeddedLocator</prop>
<prop key="mcast-port">0</prop>
<prop key="locators">localhost[11235]</prop>
<prop key="log-level">config</prop>
<prop key="start-locator">localhost[11235]</prop>
</util:properties>
<gfe:cache properties-ref="gemfireProperties"/>
...
Обратите внимание, что 2 соответствующие свойства GemFire системы являются собственностью «локаторы» и свойство «старт-локатор». Свойством «start-locator» GemFire System является настройка конфигурации для запуска «встроенного» локатора на сервере GemFire. Свойство «локаторы» GemFire System просто сообщает серверу, с которым локатор должен связаться, чтобы присоединиться к кластеру (как определено локатором, конечно).
Вы даже можете получить более изощренными со следующей конфигурацией ...
<util:properties id="gemfireProperties">
<prop key="name">GemFireCacheServerManagerLocator</prop>
<prop key="mcast-port">0</prop>
<prop key="locators">localhost[11235]</prop>
<prop key="log-level">config</prop>
<prop key="http-service-port">8181</prop>
<prop key="jmx-manager">true</prop>
<prop key="jmx-manager-port">1199</prop>
<prop key="jmx-manager-start">true</prop>
<prop key="start-locator">localhost[11235]</prop>
</util:properties>
<gfe:cache properties-ref="gemfireProperties"/>
<gfe:cache-server auto-startup="true" bind-address="${server.bind.address}" port="${server.port}" host-name-for-clients="${server.hostname.for.clients}" max-connections="${server.max.connections}"/>
В этой конфигурации, я сказал GemFire сервер для запуска «встроенный» Locator («старт-локатор») и подключения («локаторы»), чтобы служить в качестве менеджера GemFire в кластере («jmx-manager»), затем запустить службу управления («jmx-manager-start») и, наконец, запустить «встроенный» HTTP-сервис, реализованный с Jetty («http-service-port»), который запустит Pulse, API REST управления и API-интерфейс REST-разработчика.
Не только это, с помощью элемента «», сервер GemFire также станет «сервером кэша» для прослушивания и обслуживания клиентов кеша.
После GemFire сервер запускает «встроенный» Локатор (или, возможно, служба GemFire управления (менеджер), а), вы можете подключиться к нему в Gfsh как так ...
gfsh>connect --locator=localhost[11235]
Или, если вы запустили службу управления можно подключить непосредственно к менеджеру с ...
gfsh>connect --jmx-manager=localhost[1199]
Примечания запрос на подключение к локатору из Gfsh просто посылает запрос на «найти» Менеджер в кластере. Если в кластере есть менеджер, локатор отправляет координаты Менеджера (IP/Port), в противном случае Locator будет выполнять роль Менеджера (у локатора есть jmx-manager = start по умолчанию) и отправить ответ на Gfsh. Затем Gfsh сформирует новое соединение JMX-RMI непосредственно с Менеджером. Поэтому использование «connect -jmx-manager» более прямое, если вы знаете IP и PORT.
Также обратите внимание, что свойство GemFire Системы «локаторы» может быть разделенными запятыми списка локаторов, как так ...
locators=host1[port1],host2[port2],...,hostN[portN]
Однако «старт-локатора» GemFire System свойство только хозяин [port], поскольку вы можете использовать только 1 "встроенный" локатор.
Теперь, когда вы можете запустить локатор, используйте Spring FactoryBean. В то же время я создал локатор LocatorLauncherFactoryBean, основанный на общедоступном Java-классе GamFire LocatorLauncher.
Этот класс был прототипом для клиента, чтобы продемонстрировать, как локатор можно настроить и запустить в контексте Spring. Я планирую ввести официальную поддержку для настройки Locators в контексте Spring в конце концов, однако приоритет этого билета JIRA является низким по сравнению с другими билетами.
Для получения дополнительной информации см. SGF-222. Вы также найдете класс LocatorLauncherFactoryBean, прикрепленный к билету JIRA. Не стесняйтесь использовать и настраивать для своих целей.
Опять же, LocatorLauncherFactoryBean является прототипом и почти не завершен в его поддержке широкого диапазона настроек конфигурации в реальном классе GemFire LocatorLauncher.
Надеюсь, что это поможет; ура!