19.5. 调整其他设置
参阅以下信息来获取有关改进性能的其他提示。
使用异步发送确认。
如果您需要发送非事务性,持久化消息,且不需要保证在调用 send ()时已达到服务器,请不要将它们设置为发送阻塞。反之,使用异步发送确认来获得在单独的流中返回的发送确认。但是,如果服务器崩溃,一些消息可能会丢失。
使用 pre-acknowledge 模式。
使用 pre-acknowledge 模式时,会在发送给客户端之前确认消息。这可减少有线上确认流量的数量。但是,如果客户端崩溃,如果客户端重新连接,则不会恢复消息。
禁用安全性。
通过将
security-enabled参数设置为false来禁用安全性,会改进较小的性能。禁用持久性。
您可以通过将
persistence-enabled参数设置为false来关闭消息持久性。同步事务。
将
journal-sync-transactional参数设置为false在保留事务时提供更好的性能,但会牺牲一些失败事务丢失的情况。同步非事务处理。
将
journal-sync-non-transactional参数设置为false会在保留非事务时提供更好的性能,但会牺牲在失败时丢失持久消息的可能性。发送消息非阻塞。
为避免在发送的每个消息中等待网络往返,如果您正在使用 Java 消息传递服务(JMS)和 Java 命名与目录接口(JNDI),请将
参数设置为block-on-durable-sendfalse。或者,通过调用setBlockOnDurableSend ()和setBlockOnNonDurableSend ()方法直接在服务器查找器上设置它们。优化
consumer-window-size。如果您有非常快的用户,您可以增加
consumer-window-size参数的值,以有效地禁用消费者流控制。使用核心 API 而不是 JMS API。
JMS 操作必须转换为核心操作,然后服务器可以处理它们,从而降低使用核心 API 的性能。使用核心 API 时,请尝试尽可能使用
SimpleString的方法。SimpleString与 java.lang.String 不同,在写入线前不需要复制。因此,如果您在调用之间重复使用SimpleString实例,您可以避免一些不必要的复制。请注意,核心 API 无法可移植到其他代理。