代码之家  ›  专栏  ›  技术社区  ›  rupweb

Spring数据大地测量寄存器未接收事件

  •  0
  • rupweb  · 技术社区  · 6 年前

    有关 this question 我已经用

    @EnableClusterDefinedRegions(clientRegionShortcut=ClientRegionShortcut.CACHING_PROXY)

    通过确保所有类都是自动连接的,然后使用 @Resource Geode服务器区域在客户端上设置并实例化。

    @Resource(name = "request")
    private Region<String, Request> request;
    

    我可以在像这样的区域上放置和移动。然而,当我尝试在服务器上注册对密钥的兴趣时,spring boot客户端会接收到从其他客户端到服务器的更新。登记利益代码:

    request.registerInterestForAllKeys();
    request.getAttributesMutator().addCacheListener(new myListener());
    

    日志显示,兴趣被添加到该地区:

    DEBUG [main] org.apach.geode.inter.cache.GemFireCacheImpl 4388 registerInterestStarted: registerInterestsStarted: new count = 1
    TRACE [main] org.apach.geode.inter.InternalDataSerializer 2194 basicWriteObject: basicWriteObject: KEYS_VALUES
    TRACE [main] org.apach.geode.inter.InternalDataSerializer 1535 writeDSFID: writeDSFID 37 class=class org.apache.geode.internal.cache.tier.sockets.InterestResultPolicyImpl
    TRACE [main] org.apach.geode.cache.clien.inter.OpExecutorImpl 568 executeOnQueuesAndReturnPrimaryResult: sending org.apache.geode.cache.client.internal.RegisterInterestOp$RegisterInterestOpImpl@5e1a7d3 to backups: []
    TRACE [main] org.apach.geode.cache.clien.inter.OpExecutorImpl 584 executeOnQueuesAndReturnPrimaryResult: sending org.apache.geode.cache.client.internal.RegisterInterestOp$RegisterInterestOpImpl@5e1a7d3 to primary: Connection[1.2.3.4:40404]@613231852
    TRACE [main] org.apach.geode.cache.clien.inter.AbstractOp 85 attemptSend: Sending op=RegisterInterestOp$RegisterInterestOpImpl using Connection[1.2.3.4:40404]@613231852
    

    当另一个客户端添加或更改服务器区域上的值时,该事件不会进入spring引导客户端。这辆车和平常的车很相配 afterCreate afterUpdate 不调用覆盖。

    用例是动态注册和注销许多不同的密钥。

    如果我使用spring boot应用程序本身将其放入本地区域,那么事件处理程序 被召唤。所以这不是spring引导代码的问题,这是一个连接池&某种服务器注册问题。

    0 回复  |  直到 6 年前
        1
  •  1
  •   rupweb    6 年前

    问题是我的 application.properties

    spring.data.gemfire.cache.client.durable-client-id=myListener

    由于某些原因,持久客户端无法运行 CacheListenerAdapter