2015-06-28 36 views
2

我试图用Spring Data Gemfire建立一个Gemfire集群。弹簧数据Gemfire定位器

我可以通过gfsh开始定位,我可以通过Spring启动服务器

问题是,我找不到通过Spring启动定位器的方法。

回答

5

也许最简单,最简单的方法是在服务器中启动一个“嵌入式”定位器。在测试或启动具有一个或多个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类中支持大范围的配置设置并不是很完整。

希望这有助于;干杯!