我在http://hornetq.sourceforge.net/docs/hornetq-2.0.0.GA/user-manual/en/html/flow-control.html读HornetQ的消费者流量控制
“消费者流量控制
该控制服务器和客户端之间的数据流量进行客户端使用消息。出于性能方面的客户提供之前通常缓冲消息通过receive()方法传递给消费者,或者通过消息监听器异步传递给消费者。如果消费者无法像传递并存储在内部缓冲区中那样快速处理消息,那么最终可能会导致消息不断累积如果无法及时处理,可能会导致客户端内存不足。“
但我不明白... 客户端的含义是什么?它是否意味着与服务器jvm不同的jvm?所以hornetq服务器会将队列中的消息(或主题?)传递给客户端jvm堆,以便接收者从内存中消耗它们?如果客户端与服务器处于同一个jvm中,该怎么办?
谢谢,但我还是不明白。客户端是我自己的独立应用程序(实现jms reciver)。那么我的客户端如何缓冲消息呢?什么是机制,以及这是如何可能在我自己的代码? – user5157427
是的,但除非您完全重装了HornetQ客户端,否则您将使用hornetq jar来连接消息代理。所以当你创建连接然后会话时,它会初始化缓冲消息的客户端运行时端。 –