首页 > 解决方案 > CometD Bayeux Java 客户端 - 订阅者未收到事件

问题描述

我面临通过长轮询传输连接服务器的 CometD 客户端应用程序的问题。当 Bayeux 客户端和频道显示为 CONNECTED 并且订阅者停止接收事件时,存在未知场景。同时我们看到事件正在到达扩展(ReplayExtension)。

platformevent.pull.listener.SFDCPlatformEventListenerV2,EnhancedBayeuxClient@762f062b[281fubf9u3oc3xy1mhi0kpswuiid][SessionState@50e82092[CONNECTED]], dump:EnhancedBayeuxClient@762f062b[281fubf9u3oc3xy1mhi0kpswuiid][SessionState@50e82092[CONNECTED]]
    +> AttributesMap@496367f2
    |  +> null
    +> extensions size=1
    |  +> platformevent.pull.extension.ReplayExtension@6101e9c5
    +> channels size=8
       +> /event/ae_spark__TEL_Bulk_Change__e
       |  +> listeners size=0
       |  +> subscribers size=1
       |     +> subscriber.PEListenerKafkaPublisher@2bf94401
       +> /meta/*
       |  +> listeners size=0
       |  +> subscribers size=0
       +> /meta/**
       |  +> listeners size=0
       |  +> subscribers size=0
       +> /meta/connect
       |  +> listeners size=1
       |  |  +> platformevent.pull.listener.PullAuthFailureListener@7fec5ba4
       |  +> subscribers size=0
       +> /meta/disconnect
       |  +> listeners size=0
       |  +> subscribers size=0
       +> /meta/handshake
       |  +> listeners size=0
       |  +> subscribers size=0
       +> /meta/subscribe
       |  +> listeners size=1
       |  |  +> platformevent.pull.listener.EnhancedBayeuxClient$$Lambda$1240/918157032@306ad64
       |  +> subscribers size=0
       +> /meta/unsubscribe
          +> listeners size=1
          |  +> platformevent.pull.listener.EnhancedBayeuxClient$$Lambda$1239/617777499@4a59da25
          +> subscribers size=0
    key: +- bean, += managed, +~ unmanaged, +? auto, +: iterable, +] array, +@ map, +> undefined,
    Extensions:[platformevent.pull.extension.ReplayExtension@6101e9c5]
    HttpClient: HttpClient@5b519f20{STARTED}
    2021-03-27 21:17:08.734  INFO 67 --- [qtp561448546-42] c.a.s.p.p.p.l.EnhancedBayeuxClient       : Recived lstn:{clientId=281fubf9u3oc3xy1mhi0kpswuiid, channel=/meta/subscribe, id=1077, subscription=/event/ae_spark__TEL_Bulk_Change__e, successful=true}

我在 PullAuthFailureListener 中有一个逻辑,它在消息不成功时重新启动 Bayeux 客户端。重启步骤为:

有什么建议可能会阻止事件到达订阅者,或者有什么建议可以进一步解决这个问题?

标签: javasalesforcecometdbayeux

解决方案


推荐阅读