NMS.ActiveMQ URI 配置

配置 NMS.ActiveMQ

所有配置都是通过 URI 编码的参数实现的,这些参数可以在连接或目标上设置。通过 URI,您可以配置 NMS.ActiveMQ 客户端的几乎所有方面。下表显示了完整的参数集。

连接 URI 参数


示例配置

使用 Generic NMSConnectionFactory 类如下所示

var cf = new NMSConnectionFactory("activemq:tcp://127.0.0.1:61616?wireFormat.tightEncodingEnabled=true");

您也可以使用 ActiveMQ ConecctionFactory 实现目录

var cf = new Apache.NMS.ActiveMQ.ConnectionFactory("tcp://127.0.0.1:61616?wireFormat.tightEncodingEnabled=true");

协议选项


选项 描述
tcp 使用 TCP/IP 套接字连接到代理。
ssl 使用 TCP/IP 套接字连接到代理,并添加 SSL 层。
discovery 使用发现传输找到代理
failover 使用故障转移传输连接并重新连接到一个或多个代理

传输选项


TCP 传输选项

选项 默认 描述
transport.useLogging false 记录通过传输发送的数据。
transport.receiveBufferSize 8192 从套接字缓冲的数据量
transport.sendBufferSize 8192 写入套接字之前缓冲的数据量
transport.receiveTimeout 0 等待更多数据的时长,零表示无限期等待
transport.sendTimeout 0 发送超时时间,0 表示无限期等待完成
transport.requestTimeout 0 等待请求命令被认为失败的时间

发现传输选项

故障转移传输选项

在 NMS.ActiveMQ v1.4.0 之前,故障转移传输选项没有使用 transport.* 前缀。

选项 默认 描述
transport.timeout -1 发送操作在失败之前阻塞的时长。
transport.initialReconnectDelay 10 传输在第一次尝试重新连接之前等待的毫秒数。
transport.maxReconnectDelay 30000 传输在尝试重新连接之前等待的最长时间(毫秒)。
transport.backOffMultiplier 2 如果使用指数回退,重新连接延迟将乘以的倍数。
transport.useExponentialBackOff true 延迟之间的连接尝试是否应该在每次尝试中增长,直到达到最大重新连接延迟。
transport.randomize true 是否应从可用 URI 列表中随机选择要连接的 URI。
transport.maxReconnectAttempts 0 传输在失败之前尝试重新连接的次数(0 表示无限次重试)
transport.startupMaxReconnectAttempts 0 传输在失败之前尝试重新连接的次数,前提是没有建立连接。(0 表示无限次重试) **(包含在 NMS.ActiveMQ v1.5.0+)**
transport.reconnectDelay 10 传输在尝试重新连接之前等待的毫秒延迟。
transport.backup false 故障转移传输是否应维护热备份。
transport.backupPoolSize 1 如果启用,将建立多少个热备份连接。
transport.trackMessages false 保留正在传输的消息的缓存,这些消息将在重新连接时刷新到代理
transport.maxCacheSize 256 如果启用 trackMessages,将缓存的消息数量。
transport.updateURIsSupported true 根据发送到客户端的 BrokerInfo 消息更新已知代理列表。

连接选项


连接选项可以通过 connection.* 前缀或 nms.* 前缀设置,类似于 Java 客户端的 jms.* 前缀设置。

选项 默认 描述
connection.AsyncSend false 消息是否异步发送。
connection.AsyncClose true 关闭命令是否应异步发送
connection.AlwaysSyncSend false 导致生产者发送的所有消息都异步发送。
connection.CopyMessageOnSend true 复制生产者发送的消息对象,以便客户端可以重复使用消息对象,而不会影响正在传输的消息。
connection.ProducerWindowSize 0 ProducerWindowSize 是生产者在等待代理的确认消息(表示它已接受先前发送的消息)之前,生产者在内存中传输到代理的最大字节数。换句话说,这是您为异步发送配置生产者流量控制窗口的方式,在异步发送中,客户端负责管理内存使用情况。默认值为 0,表示客户端没有流量控制。另请参见 生产者流量控制
connection.useCompression false 消息体在发送之前是否应压缩。
connection.sendAcksAsync false 消息确认是否应异步发送
connection.messagePrioritySupported true 消息是否应根据消息优先级头的值传递给客户端。
connection.dispatchAsync false 代理是否应 异步将消息调度 到连接的消费者。
connection.watchTopicAdvisories true 客户端是否应观察代理发出的咨询消息,以跟踪临时目标的创建和删除。

OpenWire 选项

选项 默认 描述
wireFormat.stackTraceEnabled false 代理上发生的异常的堆栈跟踪是否应发送到客户端?仅适用于 openwire 协议。
wireFormat.cacheEnabled false 常用的重复值是否应被缓存,以减少编组?仅适用于 openwire 协议。
wireFormat.tcpNoDelayEnabled false 不影响线格式,但向对等体提供提示,表明 TCP 无延迟应在通信套接字上启用。仅适用于 openwire 协议。
wireFormat.sizePrefixDisabled false 序列化消息是否应包含有效载荷长度前缀?仅适用于 openwire 协议。
wireFormat.tightEncodingEnabled false 线大小是否应优化为 CPU 使用率?仅适用于 openwire 协议。
wireFormat.maxInactivityDuration 30000 最大空闲时长(在此时长之前,套接字被认为已死),以毫秒为单位。在某些平台上,套接字可能需要很长时间才能看起来已死,因此我们允许代理在套接字空闲一段时间后杀死连接。由某些传输使用来启用保持活动的心跳功能。设置为小于或等于 0 的值以禁用空闲监控。
maxInactivityDurationInitalDelay 10000 开始最大空闲检查的初始延迟(是的,“Inital”这个词应该是这样拼写的)

目标 URI 参数


示例配置

d = session.CreateTopic("com.foo?consumer.prefetchSize=2000&consumer.noLocal=true");

一般选项


选项 默认 描述
consumer.prefetchSize 1000 消费者将 预取 的消息数量。 **在 v1.7.0 中删除,改用连接预取策略。**
consumer.maximumPendingMessageLimit 0 用于控制如果出现 慢速消费者 情况,消息是否会被丢弃。
consumer.noLocal false 与主题消费者的 noLocal 标志相同。在此公开,以便它可以与队列一起使用。
consumer.dispatchAsync false 代理是否应 异步将消息调度 到消费者。
consumer.retroactive false 这是一个 追溯消费者 吗。
consumer.selector null 与消费者一起使用的 JMS 选择器。
consumer.exclusive false 这是一个 独占消费者 吗。
consumer.priority 0 允许您配置 消费者优先级

仅限 OpenWire 的选项


选项 默认 描述
consumer.browser false  
consumer.networkSubscription false  
consumer.optimizedAcknowledge false 启用优化确认模式,其中消息按批次确认而不是单独确认。或者,您可以使用 Session.DUPS_OK_ACKNOWLEDGE 确认模式作为消费者,这通常更快。**警告** 启用此模式可能会导致重新连接时自动确认出现一些问题。
consumer.noRangeAcks false  
consumer.retroactive false 设置追溯消费者是否启用。追溯消费者允许非持久主题订阅者接收在非持久订阅者启动之前发布的旧消息。

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