Gemfire 订阅不适用于分布式环境

Gemfire Subscription does not work on distributed environment

我设置了一个带有 2 个定位器和 3 个节点的集群 Gemfire 环境。我想将其用作 publisher/subscription 解决方案。我在 Java 应用程序中创建了一个缓存侦听器,当我将一个项目插入一个区域时它运行良好(记录)。但是,然后我启动 gfsh window 来插入一个项目,java 侦听器不起作用。我的配置如下:

 <gfe:client-cache id="client-cache" pool-name="my-pool" properties-ref="gemfire-props"/>
 <gfe:pool id="my-pool" subscription-enabled="true">
         <gfe:locator host="10.151.134.111" port="10334" /> 
    </gfe:pool>
    <gfe:client-region id="Test" data-policy="EMPTY" cache-ref="client-cache">
         <gfe:cache-listener> 
           <bean class="Test.util.LoggingCacheListener"/> 
        </gfe:cache-listener>       
    </gfe:client-region>

我相信您需要 data-policy=NORMAL(或除 EMPTY 之外的其他内容)才能正常工作。有关详细信息,请参阅 DataPolicy。客户端侦听器不会触发,因为数据永远不会复制到客户端缓存,因此没有状态更改。使用 data-policy=EMPTY 时,仅当客户端执行放置时才会触发侦听器。