跳到主要内容

在PubSub+ JCSMP API中发布消息时的线程使用

当事件代理成功接收到保证消息时,它会向 PubSub+ JCSMP API 返回确认。它不会为直接消息返回确认。(此规则的例外是使用 JCSMP 的非流式发布模式发布直接消息。)

上下文使用一个处理线程从事件代理读取确认。然后,它解析窗口确认,为每条消息(通过消息 ID 标识)单独排队确认,然后将其分派到应用程序回调。

使用流式发布模式发布消息时,上下文使用一个线程读取事件代理为一组连续保证消息发送的窗口确认,解析它,然后在生产者通知分发队列上为每条消息单独排队确认。此队列也用于消息发布异常。每个上下文有一个队列。

上下文使用另一个线程用于通知和分发队列中的确认到应用程序回调。

请注意,如果线程尝试将通知追加到队列时队列上没有足够空间,线程可能会阻塞,直到有足够的空间。可以通过 JCSMPGlobalProperties.setProducerDispatcherQueueSize() 修改队列大小。

下图显示了用于发送保证消息的应用程序线程以及用于处理事件代理窗口消息确认的上下文线程。

通过 JCSMP 使用流式模式发布保证消息