Stomp URI 配置

配置 NMS.Stomp

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

连接 URI 参数

 示例配置

使用 Generic NMSConnectionFactory 类将如下所示

var cf = new NMSConnectionFactory("stomp:tcp://localhost:61613");

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

var cf = new Apache.NMS.Stomp.ConnectionFactory("tcp://localhost:61613");

协议选项

选项名称 描述
tcp 使用 TCP/IP 套接字连接到代理。
ssl 使用 TCP/IP 套接字连接到代理,并添加 SSL 层(.NETCF 上不可用)。
failover 使用故障转移传输连接并重新连接到一个或多个代理

您可以使用 Generic NMSConnectionFactory 类添加故障转移选项,如下所示

var cf = new NMSConnectionFactory("stomp:failover:tcp://localhost:61613");

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

var cf = new Apache.NMS.Stomp.ConnectionFactory("failover:tcp://localhost:61613");

传输选项

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

在 NMS.Stomp 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.Stomp v1.5.0+ 中
transport.reconnectDelay 10 传输在尝试重新连接之前等待的毫秒数。

连接选项

选项名称 默认值 描述
connection.AsyncSend false 消息是否异步发送。
connection.AsyncClose true 关闭命令是否应该异步发送
connection.AlwaysSyncSend false 导致生产者发送的所有消息都异步发送。
connection.CopyMessageOnSend true 复制生产者发送的消息对象,以便客户端可以重复使用消息对象而不会影响正在传输的消息。
connection.useCompression false 消息体是否应该在发送之前压缩。
connection.sendAcksAsync false 消息确认是否应该异步发送
connection.messagePrioritySupported true 消息是否应该根据消息优先级标头的值传递给客户端。
connection.dispatchAsync false 代理是否应该 异步调度消息 到连接的消费者。
Stomp 线程协议选项

小心

这些值当前不受支持,但计划在以后的版本中发布。

选项名称 默认值 描述
wireFormat.maxInactivityDuration 30000 最大不活动时长(在此之前套接字被认为已死),以毫秒为单位。在某些平台上,套接字可能需要很长时间才能显示为已死,因此我们允许代理在连接长时间不活动时终止连接。一些传输使用它来启用保持活动的心跳功能。设置为 <= 0 的值以禁用不活动监控。
wireFormat.maxInactivityDurationInitialDelay 10000 开始最大不活动检查的初始延迟(是的,“Initial”这个词应该是这样拼写的)

目标 URI 参数

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

常规选项

选项名称 默认值 描述
consumer.prefetchSize 1000 消费者将 预取 的消息数量。
consumer.noLocal false 与主题消费者上的 noLocal 标志相同。在此公开,以便它可以与队列一起使用。
consumer.dispatchAsync false 代理是否应该 异步调度消息 到消费者。
consumer.retroactive false 这是一个 追溯消费者 吗。
consumer.selector null 与消费者一起使用的 JMS 选择器。
consumer.exclusive false 这是一个 独占消费者 吗。

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