Apache.NMS.AMQP 配置
客户端配置
本文件详细介绍了客户端的各种配置选项,其相关配置的语法以及在定义 ConnectionFactory 时可以设置的各种 URI 选项。
连接 URI
客户端连接 URI 的基本格式如下:
amqp[s]://hostname:port[?option=value[&option2=value...]]
其中 amqps 和 scheme 指定使用 SSL/TLS。
客户端可以使用 URI 在定义 ConnectionFactory 时配置许多不同的设置,这些设置将在以下部分详细说明。
NMS 配置选项
这些选项适用于 NMS 对象的行为,例如 Connection、Session、MessageConsumer 和 MessageProducer。
- nms.username 用于验证连接的用户名值。
- nms.password 用于验证连接的密码值。
- nms.clientId 应用于连接的 ClientId 值。
- nms.localMessageExpiry 控制 MessageConsumer 实例是否会本地过滤过期消息或传递它们。默认情况下,此值设置为 true,过期消息将被过滤。
- nms.sendTimeout 超时值,控制客户端在同步消息发送完成之前等待多长时间才能返回错误。默认情况下,客户端将无限期地等待发送完成。
- nms.requestTimeout 超时值,控制客户端在各种同步交互(例如打开生产者或消费者)完成之前等待多长时间才能返回错误。不影响同步消息发送。默认情况下,客户端将无限期地等待请求完成。
- nms.clientIdPrefix 可选的前缀值,用于在为 JMS ConnectionFactory 创建新连接时为生成的 Client ID 值使用。默认前缀为“ID:”。
- nms.connectionIdPrefix 可选的前缀值,用于在为 JMS ConnectionFactory 创建新连接时为生成的 Connection ID 值使用。此连接 ID 用于记录来自 JMS Connection 对象的一些信息,因此可配置的前缀可以更轻松地跟踪日志。默认前缀为“ID:”。
TCP 传输配置选项
使用纯 TCP 连接到远程时,这些选项配置底层套接字的行为。这些选项与其他配置选项一起追加到连接 URI,例如
amqp://127.0.0.1:5672?nms.clientId=foo&transport.receiveBufferSize=30000
下面列出了 TCP 传输选项的完整集合
- transport.sendBufferSize 指定 TCP 套接字的 ReceiveBufferSize 选项。
- transport.receiveBufferSize 指定 TCP 套接字的 SendBufferSize 选项。
- transport.receiveTimeout 指定 TCP 套接字的 ReceiveTimeout 选项。
- transport.sendTimeout 指定 TCP 套接字的 SendTimeout 选项。
- transport.tcpKeepAliveTime 指定向闲置连接发送保持活动传输的频率。
- transport.tcpKeepAliveInterval 指定在未从之前的保持活动传输接收响应时发送保持活动传输的频率。
- transport.tcpNoDelay 指定 TCP 套接字的 NoDelay 选项。
如果设置了tcpKeepAliveTime 或tcpKeepAliveInterval,则启用 TCP Keep-Alive。
故障转移配置选项
启用故障转移后,客户端可以在由于某种原因与当前服务器断开连接时自动重新连接到另一个服务器。故障转移 URI 始终以故障转移前缀开头,服务器的 URI 列表包含在一组括号内。“nms.” 选项应用于故障转移 URI 的整体,位于括号之外,并在其整个生命周期内影响 NMS Connection 对象。
故障转移的 URI 如下所示
failover:(amqp://host1:5672,amqp://host2:5672)?nms.clientId=foo&failover.maxReconnectAttempts=20
括号内的单个代理详细信息可以使用前面定义的“transport.” 或“amqp.” 选项,这些选项在连接到每个主机时应用
failover:(amqp://host1:5672?amqp.option=value,amqp://host2:5672?transport.option=value)?nms.clientId=foo
下面列出了故障转移的完整配置选项集
- failover.initialReconnectDelay 客户端在首次尝试重新连接到远程对等体之前等待的时间量。默认值为零,这意味着第一次尝试立即发生。
- failover.reconnectDelay 控制连续重新连接尝试之间的延迟,默认为 10 毫秒。如果未启用回退选项,则此值保持不变。
- failover.maxReconnectDelay 客户端在尝试重新连接之前等待的最大时间。此值仅在启用回退功能时使用,以确保延迟不会增长过大。默认值为 30 秒,作为连接尝试之间最大时间。
- failover.useReconnectBackOff 控制重新连接尝试之间的时间是否应根据配置的乘数增长。此选项默认为 true。
- failover.reconnectBackOffMultiplier 用于增加重新连接延迟值的乘数,默认为 2.0d。
- failover.maxReconnectAttempts 允许的重新连接尝试次数,超过此次数后,将向客户端报告连接失败。默认情况下,没有限制或 (-1)。
- failover.startupMaxReconnectAttempts 对于从未连接到远程对等体的客户端,此选项控制在报告连接失败之前进行的连接尝试次数。默认情况下,使用 maxReconnectAttempts 的值。