我試圖用Spring Data Gemfire建立一個Gemfire集羣。彈簧數據Gemfire定位器
我可以通過gfsh開始定位,我可以通過Spring啓動服務器。
問題是,我找不到通過Spring啓動定位器的方法。
我試圖用Spring Data Gemfire建立一個Gemfire集羣。彈簧數據Gemfire定位器
我可以通過gfsh開始定位,我可以通過Spring啓動服務器。
問題是,我找不到通過Spring啓動定位器的方法。
也許最簡單,最簡單的方法是在服務器中啓動一個「嵌入式」定位器。在測試或啓動具有一個或多個Spring配置的GemFire服務器的獨立羣集時,我經常使用這種技術。
的配置類似下面...
<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系統屬性是「定位器」屬性和「創業定位」屬性。 「啓動定位器」GemFire系統屬性是啓動GemFire Server中「嵌入式」定位器的配置設置。 「定位器」GemFire系統屬性只是告訴服務器哪個定位器聯繫加入羣集(當然由定位器決定)。
你甚至可以用下面的配置更復雜......
<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服務器啓動的「嵌入」定位符(「啓動定位器」),並連接(「定位器」),作爲羣集中的GemFire Manager(「jmx-manager」),然後啓動管理服務(「jmx-manager-start」),最後啓動「嵌入式」HTTP服務,使用Jetty(「http-service-port」)實現,它將啓動Pulse,管理REST API以及開發人員REST API。
不僅如此,憑藉「」元素,GemFire Server也將成爲偵聽並提供緩存客戶端的「緩存服務器」。
一旦服務器的GemFire啓動「嵌入」定位器(或可選的的GemFire管理服務(一個經理),以及),您可以連接到它在Gfsh是這樣的...
gfsh>connect --locator=localhost[11235]
或者,如果你開始的管理服務,您可以用...
gfsh>connect --jmx-manager=localhost[1199]
注意直接連接到管理中心,連接請求從Gfsh定位器只是將集羣中的「定位」經理的請求。如果集羣中有管理器,則定位器發回管理器的座標(IP /端口),否則定位器將承擔管理器的角色(定位器的默認設置爲jmx-manager = start),並將響應發送回Gfsh。然後,Gfsh將直接向Manager創建一個新的JMX-RMI連接。因此,如果您知道IP和端口,那麼使用'connect --jmx-manager'會更直接。
還要注意,在的GemFire「定位器」系統屬性可以是逗號分隔像這樣定位器的列表...
locators=host1[port1],host2[port2],...,hostN[portN]
然而,「創業定位」的GemFire系統屬性只是一個主機[端口],因爲你只能有1個「嵌入式」定位器。
現在,您可以啓動Locator的另一種方式是使用Spring FactoryBean。一段時間後,我創建了一個基於GemFire的LocatorLauncher公共Java API類的LocatorLauncherFactoryBean。
這個類是客戶演示Locator如何在Spring環境中配置和啓動的原型。我計劃最終在Spring上下文中引入對配置定位器的正式支持,但與其他門票相比,此JIRA門票的優先級較低。
查看SGF-222瞭解更多詳情。您還會發現連接到JIRA票證的LocatorLauncherFactoryBean類。隨意使用和調整你的目的。
同樣,LocatorLauncherFactoryBean是一個原型,並且在實際的GemFire LocatorLauncher類中支持大範圍的配置設置並不是很完整。
希望這有助於;乾杯!