gpt4 book ai didi

java - Spring Data Gemfire 定位器

转载 作者:行者123 更新时间:2023-11-30 06:13:57 27 4
gpt4 key购买 nike

我正在尝试使用 Spring Data Gemfire 设置 Gemfire 集群。

我可以通过 gfsh 启动一个定位器,我可以通过 Spring 启动一个服务器

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

最佳答案

可能最简单、最简单的方法是在服务器中启动“嵌入式”定位器。在使用 1 个或多个 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 系统属性是“locators”属性和“start-locator”属性。 “start-locator”GemFire 系统属性是在 GemFire 服务器中启动“嵌入式”定位器的配置设置。 “定位器”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 服务器启动一个“嵌入式”定位器(“start-locator”)并连接到它(“locators”),作为集群中的 GemFire 管理器(“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 到 Locator 的连接请求只是发送一个请求以在集群中“定位”Manager。如果集群中有Manager,则Locator发回Manager的坐标(IP/Port),否则Locator会承担起Manager的角色(Locator默认设置了jmx-manager=start)并发回response到Gfsh。然后,Gfsh 将形成一个新的 JMX-RMI 连接,直接连接到管理器。因此,如果您知道 IP 和端口,使用“connect --jmx-manager”会更直接。

另请注意,GemFire“定位器”系统属性可以是逗号分隔的定位器列表,如下所示...

locators=host1[port1],host2[port2],...,hostN[portN]

但是,“start-locator”GemFire 系统属性只是一个主机[端口],因为您只能有 1 个“嵌入式”定位器。

现在,启动定位器的另一种方法是使用 Spring FactoryBean。不久前,我基于 GemFire 的 LocatorLauncher 公共(public) Java API 类创建了一个 LocatorLauncherFactoryBean。

此类是客户的原型(prototype),用于演示如何在 Spring 上下文中配置和启动定位器。我计划最终引入对在 Spring 上下文中配置定位器的正式支持,但是与其他票证相比,此 JIRA 票证的优先级较低。

参见 SGF-222了解更多详情。您还将找到附加到 JIRA 票证的 LocatorLauncherFactoryBean 类。请随意使用和调整您的目的。

同样,LocatorLauncherFactoryBean 是一个原型(prototype),在实际 GemFire LocatorLauncher 类上支持广泛的配置设置方面还不完善。

希望这对您有所帮助;干杯!

关于java - Spring Data Gemfire 定位器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31099782/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com