提问者:小点点

同一主机上的多个gefire缓存服务器


嗨,我想使用Spring gemfire 8.1在同一主机上启动多个gemfire缓存服务器。请在下面找到gefire配置文件。我想在同一主机上启动GFServer1和GFServer2,即使用Spring Gemfire配置的HOSTNAME。我想避免gfsh命令并从eclipse启动所有内容并将客户端连接到同一主机上的这些服务器。事先感谢

    <util:properties id="gemfireProperties">
        <prop key="name">Locator_Dev</prop>
        <prop key="mcast-port">0</prop>
        <prop key="locators">HOSTNAME[1099]</prop>
        <prop key="log-level">warning</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">HOSTNAME[1099]</prop>
    </util:properties>

    <gfe:cache properties-ref="gemfireProperties" />


    <gfe:cache-server id="GFServer1" auto-startup="true"
        bind-address="HOSTNAME" port="40411" host-name-for-clients="HOSTNAME"
        load-poll-interval="2000" max-connections="22" max-threads="16"
        max-message-count="1000" max-time-between-pings="30000" >

        <gfe:subscription-config eviction-type="ENTRY"
            capacity="1000" disk-store="diskStore1" />
    </gfe:cache-server>


    <gfe:cache-server id="GFServer2" auto-startup="true"
        bind-address="HOSTNAME" port="40412" host-name-for-clients="HOSTNAME"
        load-poll-interval="2000" max-connections="22" max-threads="16"
        max-message-count="1000" max-time-between-pings="30000" >

        <gfe:subscription-config eviction-type="ENTRY"
            capacity="1000" disk-store="diskStore1" />
    </gfe:cache-server>


   <gfe:disk-store id="diskStore1" queue-size="50"
        auto-compact="true" max-oplog-size="10" time-interval="9999">
        <gfe:disk-dir
            location="D:\NP\WorkSpace\GemfireRegionSolutionNStart\disk-store\store_1"
            max-size="20" />
        <gfe:disk-dir
            location="D:\NP\WorkSpace\GemfireRegionSolutionNStart\disk-store\store_2"
            max-size="20" />
    </gfe:disk-store>


    <gfe:replicated-region id="customer" name="Customer">
    </gfe:replicated-region>

    <gfe:replicated-region id="bookMaster" name="BookMaster">
    </gfe:replicated-region>

</beans> 

共3个答案

匿名用户

您发布的配置将在同一JVM中创建两个缓存服务器,即它将在同一进程中打开两个端口。

如果这不是您想要的,即您想要两个不同的进程,在eclipse中,您必须提供两个运行时配置来启动两个服务器。

匿名用户

有具体的问题吗?正如@Swapnil指出的,这将启动2个GemFire“缓存服务器”(侦听缓存客户端的服务器套接字),因为您已经在同一JVM的同一主机上进行了适当的配置。无论如何执行(即IDE、命令行、从Gfsh或从Spring Boot),这都将起作用。

如果您有更具体的问题,请告诉我们,谢谢!

匿名用户

因此,您可以配置LocatorLauncherFactoryBean,例如,如下所示…

<uti:properties id="gemfireProperties">
  <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="locators">host1[10334],host2[11235],...,hostN[20668]</prop>
</util:properties>

<bean id="locator" class="org.spring.data.gemfire.config.LocatorLauncherFactoryBean">
  <property name="gemfireProperties" ref="gemfireProperties"/>
  <property name="memberName" value="SpringDataGemFireLocator"/>
  <property name="bindAddress" value="10.124.12.24"/>
  <property name="port" value="12480"/>
</bean>

您可能已经注意到,此定位器可以将GemFire集群中的其他定位器连接起来,这些定位器是在“gemfire Properties”bean中使用“定位器”GemFire系统属性指定的。

注意:只有当运行此定位器的localhost具有多个NIC并且您希望绑定到特定的NIC时,LocatorLauncherFactoryBean的"bindAddress"属性才是必需的。

此外,我还设置了JMX Manager GemFire系统属性以使定位器成为并实际启动一个管理器(在端口1199上)。这允许您使用gfsh从Gfsh连接到此定位器

基本上,“gemfire Properties”bean允许您配置任何有效的GemFire系统属性。

现在,由于此定位器是从您的IDE中运行的,因此您需要使用$GEMFIRE环境变量配置“运行配置文件”,该环境变量指向从Pivotal网站下载的GemFire发行版,以便从该定位器运行Pulse。在决定是否1.启动运行GemFire开箱即用的webapps(例如Pulse)的嵌入式HTTP服务(Jetty)和2.是否可以找到Pulse并启动webapp时,GemFire Manager的ManagementAgent会在发行版中查找Pulse。

例如,我将$GEMFIRE环境变量设置为…

/Users/jblum/Downloads/Pivotal/GemStone/Products/GemFire/Pivotal_GemFire_820_b17919_Linux

现在,要让您的独立Spring配置的GemFire服务器连接到集群,这很简单。

同样,您只需要在每个Spring GemFire ServerXML配置文件中定义一个"gemfire Properties"bean,其中定义了"locators"GemFire System属性,例如…

<uti:properties id="gemfireProperties">
  <prop key="log-level">config</prop>
  <prop key="locators">localhost[12480]</prop>
</util:properties>

<gfe:cache properties-ref="gemfireProperties"/>

此配置将使GemFire数据节点能够连接到集群,如果一切设置正确,则该集群将从Pulse可见。

再次,希望这有所帮助。

干杯约翰