发送消息的轻量级程度

 常见问题解答 > 使用 Apache ActiveMQ Classic > 发送消息的轻量级程度

适用于 ActiveMQ Classic 3.x/4.x

这取决于。

如果您处于 JMS 事务中,并且使用非持久消息,那么它非常轻量级且快速 - 通常只需阻塞,直到消息进入套接字缓冲区。但是,如果您使用持久消息,并且不使用 JMS 事务,那么默认情况下,我们会执行与代理的阻塞请求-响应,以确保消息在调用 send() 完成之前持久保存到磁盘 - 这相当缓慢。

但是,如果您确实希望它非常轻量级且快速,请在您的 JMS 连接上 启用异步发送

如果您确实需要低延迟,例如在 GUI 线程或高性能服务器中,您可能需要启用异步发送。异步发送的唯一缺点是,如果发送由于任何原因而失败(通常是安全异常或某些传输故障),那么您不会在发送方线程中收到异常,因为所有工作都是异步完成的,尽管您的 ErrorListener 会收到通知。

(如果您使用可靠的传输,那么您可以让 JMS 客户端处理传输错误,并丢弃和重新连接到另一个代理以为您处理自动重新连接)。

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛标志和 Apache ActiveMQ 项目标志是 Apache 软件基金会的商标。版权所有 © 2024,Apache 软件基金会。根据 Apache 许可证 2.0 获得许可。