连接配置 URI

使用 ActiveMQ Classic > 配置传输 > ActiveMQ Classic 连接 URI > 连接配置 URI

连接配置 URI

可以通过在 ActiveMQConnectionActiveMQConnectionFactory 对象上显式设置属性,或使用以下 URI 语法来配置 Apache ActiveMQ Classic 连接。

示例

在常规连接 URI 上设置名为 jms.$PROPERTY 的属性。例如,可以在 ActiveMQConnectionFactory 上将 brokerURL 设置为以下值以启用 异步发送

tcp://127.0.0.1:61616?jms.useAsyncSend=true

连接选项

使用正确的前缀!

brokerURL 或代理的传输连接器上使用以下选项时,应以 jms. 为前缀。

选项名称 默认值 描述
alwaysSessionAsync true true 时,将使用单独的线程为连接中的每个会话调度消息。当存在多个会话或会话未处于 Session.AUTO_ACKNOWLEDGESession.DUPS_OK_ACKNOWLEDGE 模式时,始终使用单独的线程。
alwaysSyncSend false true 时,即使不需要进行传递模式,MessageProducer 在发送消息时也将始终使用同步发送。
auditDepth 2048 将被审核以查找重复和乱序消息的消息窗口大小。
auditMaximumProducerNumber 64 将被审核的生产者最大数量。
checkForDuplicates true true 时,消费者将检查重复消息并适当地处理消息,以确保不会无意中处理两次该消息。
clientID null 设置连接要使用的 JMS clientID。
closeTimeout 15000 设置在关闭被视为完成之前的超时时间(以毫秒为单位)。通常,连接上的 close() 操作将等待代理的确认。这使关闭操作能够超时,从而防止客户端在代理不可用时挂起。
consumerExpiryCheckEnabled true 控制是否在每个 MessageConsumer 中调度消息之前执行消息过期检查。禁用此检查会导致消耗过期消息。(自 5.11 起)。
copyMessageOnSend true JMS 消息是否应该作为 JMS 中的 send() 方法的一部分复制到新的 JMS 消息对象中。默认情况下,这是启用的,以符合 JMS 规范。为了提高性能,如果在发送后不更改 JMS 消息,请将其设置为 false
disableTimeStampsByDefault false 设置消息上的时间戳是否应该被禁用。为了提高性能,请将其设置为 false
dispatchAsync false 代理是否应该 异步调度消息 到消费者?
nestedMapAndListEnabled true 控制是否支持 结构化消息属性和 MapMessages,以便消息属性和 MapMessage 条目可以包含嵌套的 Map 和 List 对象。从 4.1 版本开始提供。
objectMessageSerializationDefered false 当在 ObjectMessage 上设置对象时,JMS 规范要求该对象由该 set 方法序列化。当 true 时,对象将不会被序列化。如果需要通过套接字发送消息或将其存储到磁盘,该对象可能会随后被序列化。
optimizeAcknowledge false 启用优化的确认模式,其中消息按批次而不是逐个确认。或者,可以为消费者使用 Session.DUPS_OK_ACKNOWLEDGE 确认模式,这通常更快。警告:启用此问题可能会导致自动确认在重新连接时出现一些问题。
optimizeAcknowledgeTimeOut 300 如果 > 0,则指定启用 optimizeAcknowledge 时批次确认之间的最大时间(以毫秒为单位)。(自 5.6 起)。
optimizedAckScheduledAckInterval 0 如果 > 0,则指定一个时间间隔,在此时间间隔上,使用优化确认时,所有未完成的 ACK 将被传递,以便长时间运行的消费者(没有收到更多消息)最终将 ACK 最近几个未 ACK 的消息。(自 5.7 起)。
optimizedMessageDispatch true 如果 true,则将使用更大的预取限制 - 仅适用于持久主题订阅者。
useAsyncSend false 强制使用 异步发送,这会带来巨大的性能提升;但意味着 send() 方法将立即返回,无论消息是否已发送,这会导致消息丢失。
useCompression false 启用对消息正文使用压缩。
useRetroactiveConsumer false 设置是否启用追溯性消费者。追溯性消费者允许非持久主题订阅者接收在非持久订阅者启动之前发布的旧消息。
warnAboutUnstartedConnectionTimeout 500 从连接创建时间到在连接未通过 Connection.start() 适当地启动且消费者收到消息时生成警告的时间(以毫秒为单位)。忘记 启动连接并想知道为什么没有传递消息 是一个非常常见的错误,因此此选项使默认情况下创建警告,如果用户忘记。要禁用警告,只需将该值设置为 < 0
nonBlockingRedelivery false 消息重新传递(以及任何相关的延迟)是否会阻止其他消息的传递。设置为 true 将允许消息按乱序传递。

嵌套选项

还可以使用给定的前缀配置连接对象上的嵌套对象。有关每个单独属性的细分,请参阅 javadoc。

选项名称 配置的对象 另请参阅
jms.blobTransferPolicy.* BlobTransferPolicy Blob 消息
jms.prefetchPolicy.* ActiveMQPrefetchPolicy 预取限制是用来做什么的?
jms.redeliveryPolicy.* RedeliveryPolicy 重新传递策略

例如,可以设置

tcp://127.0.0.1:61616?jms.prefetchPolicy.all=100&jms.redeliveryPolicy.maximumRedeliveries=5

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