272.2. 选项
RabbitMQ 组件支持 50 个选项,如下所列。
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
hostname (common) | 运行 RabbitMQ 实例或集群的主机名。 | 字符串 | |
portnumber (common) | 带有正在运行的 rabbitmq 实例或集群的主机的端口号。 | 5672 | int |
用户名 (security) | 身份验证访问时的用户名 | Guest | 字符串 |
密码 (security) | 验证访问的密码 | Guest | 字符串 |
vhost (common) | 频道的 vhost | / | 字符串 |
addresses (common) | 如果设置了这个选项,camel-rabbitmq 将尝试根据选项地址的设置来创建连接。addresses 值是一个字符串,它类似于 server1:12345, server2:12345 | 字符串 | |
ConnectionFactory (common) | 使用自定义 RabbitMQ 连接工厂。当设定这个选项时,不会使用在 URI 上设置的所有连接选项(connectionTimeout, requestedChannelMax…) | ConnectionFactory | |
threadPoolSize (consumer) | 使用者使用带有固定线程数的线程池可执行文件。此设置允许您设置该线程数量。 | 10 | int |
autoDetectConnection Factory (advanced) | 是否自动检测是否从注册表查找 RabbitMQ 连接工厂。启用并找到连接工厂的单一实例后,它将被使用。可以在组件或端点级别配置显式连接工厂。 | true | 布尔值 |
connectionTimeout (advanced) | 连接超时 | 60000 | int |
requestedChannelMax (advanced) | 请求的连接频道最大数(提供的最大频道数) | 2047 | int |
requestedFrameMax (advanced) | 请求的连接帧最大范围(提供的帧的最大大小) | 0 | int |
requestedHeartbeat (advanced) | 请求的连接心跳(以秒为单位) | 60 | int |
自动恢复启用 (advanced) | 启用连接自动恢复(使用在应用程序不启动连接关闭时执行自动恢复) | 布尔值 | |
networkRecoveryInterval (advanced) | 以毫秒为单位的网络恢复间隔(从网络故障中恢复时使用的interval) | 5000 | 整数 |
topologyRecoveryEnabled (advanced) | 启用连接拓扑恢复(应该执行拓扑恢复) | 布尔值 | |
prefetchEnabled (consumer) | 在 RabbitMQConsumer 端启用服务质量。您需要同时指定 prefetchSize、prefetchCount、prefetchGlobal 的选项 | false | 布尔值 |
prefetchSize (consumer) | 服务器将提供的最大内容量(以八位字节表示),如果无限,则会提供 0。您需要同时指定 prefetchSize、prefetchCount、prefetchGlobal 的选项 | int | |
prefetchCount (consumer) | 服务器将发送的最大消息数为 0 (如果没有限制)。您需要同时指定 prefetchSize、prefetchCount、prefetchGlobal 的选项 | int | |
prefetchGlobal (consumer) | 如果设置应该应用到整个频道,而不是每个消费者,您需要同时指定 prefetchSize、prefetchCount、prefetchCount、prefetchGlobal | false | 布尔值 |
channelPoolMaxSize (producer) | 获取池中打开的最大频道数 | 10 | int |
channelPoolMaxWait (producer) | 设置从池中等待频道的最大毫秒数 | 1000 | long |
requestTimeout (advanced) | 设置在使用 InOut Exchange Pattern 时等待回复的超时(以毫秒为单位) | 20000 | long |
requestTimeoutChecker Interval (advanced) | 为 inOut 交换设置 requestTimeoutCheckerInterval | 1000 | long |
transferException (advanced) | 当对消费者进行 true 和 inOut Exchange 时,发送 caused Exception 返回响应中 | false | 布尔值 |
publisher Acknowledgements (producer) | 为 true 时,消息将发布并打开发布发布者确认信息 | false | 布尔值 |
publisher AcknowledgementsTimeout (producer) | 从 RabbitMQ 服务器等待基本.ack 响应的时间(以毫秒为单位) | long | |
guaranteedDeliveries (producer) | 为 true 时,当无法发送消息时(basic.return)并且消息被标记为 mandatory 时,会抛出异常。在这种情况下,发布者也会被激活。另请参阅发布者确认 - 消息将被确认的时间。 | false | 布尔值 |
mandatory (producer) | 此标志告诉服务器如何在消息无法路由到队列时做出反应。如果设置了此标志,服务器将使用返回方法返回无法路由的消息。如果此标志为零,则服务器会静默丢弃消息。如果标题为 rabbitmq.MANDATORY,它将覆盖此选项。 | false | 布尔值 |
immediate (producer) | 此标志告诉服务器如何在消息无法立即路由到队列消费者时做出反应。如果设置了此标志,服务器将使用返回方法返回一个 undeliverable 消息。如果此标志为零,服务器会将该消息排队,但不保证使用它。如果标头存在 rabbitmq.IMMEDIATE,它将覆盖此选项。 | false | 布尔值 |
args (advanced) | 指定用于配置不同的 RabbitMQ 概念的参数,每个概念都需要一个不同的前缀: Exchange: arg.exchange。queue:arg.queue.binding:arg.binding.例如,使用 message ttl 参数声明队列: http://localhost:5672/exchange/queueargs=arg.queue.x-message-ttl=60000 | Map | |
clientProperties (advanced) | 连接客户端属性(在服务器中使用的客户端信息) | Map | |
SSLProtocol ( security) | 在连接中启用 SSL,接受的值为 true、TLS 和 'SSLv3 | 字符串 | |
trustmanager (security) | 配置 SSL 信任管理器,应该启用 SSL 才能使此选项生效 | TrustManager | |
autoAck (consumer) | 如果应该自动确认消息 | true | 布尔值 |
auto delete (common) | 如果为 true,则在不再使用交换时会删除交换 | true | 布尔值 |
durable (common) | 如果我们声明持久化的交换(服务器重启后交换将保留) | true | 布尔值 |
exclusive (common) | 独占队列只能由当前连接访问,并在该连接关闭时删除。 | false | 布尔值 |
exclusiveConsumer (consumer) | 请求对队列进行独占访问(注意只有此使用者可以访问队列)。当您希望一个长期共享队列被一个消费者临时访问时,这很有用。 | false | 布尔值 |
passive (common) | 被动队列依赖于 RabbitMQ 上已经可用的队列。 | false | 布尔值 |
skipQueueDeclare (common) | 如果为 true,则生成者不会声明和绑定队列。这可用于通过现有的路由密钥指示消息。 | false | 布尔值 |
skipQueueBind (common) | 如果为 true,则在声明后队列不会绑定到交换 | false | 布尔值 |
skipExchangeDeclare (common) | 如果需要声明队列而不是交换,可以使用它 | false | 布尔值 |
声明 (common) | 如果选项为 true,camel 声明交换和队列名称并将其绑定在一起。如果选项为 false,则 camel 不会声明服务器上的交换和队列名称。 | true | 布尔值 |
deadLetterExchange (common) | 死信交换的名称 | 字符串 | |
deadLetterQueue (common) | 死信队列的名称 | 字符串 | |
deadLetterRoutingKey (common) | 死信交换的路由密钥 | 字符串 | |
deadLetterExchangeType (common) | 死信交换的类型 | direct | 字符串 |
allowNullHeaders (producer) | 允许将 null 值传递给标头 | false | 布尔值 |
resolveProperty Placeholders (advanced) | 组件是否应在启动时解析属性占位符。只有 String 类型的属性可以使用属性占位符。 | true | 布尔值 |
RabbitMQ 端点使用 URI 语法进行配置:
rabbitmq:exchangeName
rabbitmq:exchangeName
使用以下路径和查询参数:
272.2.1. 路径参数(1 参数): 复制链接链接已复制到粘贴板!
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
exchangeName | 必需 The Exchange name 决定将发送到的交换生成的消息。如果是消费者,交换名称决定了队列将绑定到的交换。 | 字符串 |
272.2.2. 查询参数(62 参数): 复制链接链接已复制到粘贴板!
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
addresses (common) | 如果设置了这个选项,camel-rabbitmq 将尝试根据选项地址的设置来创建连接。addresses 值是一个字符串,它类似于 server1:12345, server2:12345 | Address[] | |
auto delete (common) | 如果为 true,则在不再使用交换时会删除交换 | true | 布尔值 |
ConnectionFactory (common) | 使用自定义 RabbitMQ 连接工厂。当设定这个选项时,不会使用在 URI 上设置的所有连接选项(connectionTimeout, requestedChannelMax…) | ConnectionFactory | |
deadLetterExchange (common) | 死信交换的名称 | 字符串 | |
deadLetterExchangeType (common) | 死信交换的类型 | direct | 字符串 |
deadLetterQueue (common) | 死信队列的名称 | 字符串 | |
deadLetterRoutingKey (common) | 死信交换的路由密钥 | 字符串 | |
声明 (common) | 如果选项为 true,camel 声明交换和队列名称并将其绑定在一起。如果选项为 false,则 camel 不会声明服务器上的交换和队列名称。 | true | 布尔值 |
durable (common) | 如果我们声明持久化的交换(服务器重启后交换将保留) | true | 布尔值 |
exchangeType (common) | 交换类型,如 direct 或 topic。 | direct | 字符串 |
exclusive (common) | 独占队列只能由当前连接访问,并在该连接关闭时删除。 | false | 布尔值 |
hostname (common) | 正在运行的 rabbitmq 实例或集群的主机名。 | 字符串 | |
passive (common) | 被动队列依赖于 RabbitMQ 上已经可用的队列。 | false | 布尔值 |
portnumber (common) | 带有正在运行的 rabbitmq 实例或集群的主机的端口号。默认值为 5672。 | int | |
queue (common) | 从其中接收消息的队列 | 字符串 | |
routingKey (common) | 将消费者队列绑定到交换时使用的路由密钥。对于生成者路由密钥,您可以设置标头 rabbitmq.ROUTING_KEY。 | 字符串 | |
skipExchangeDeclare (common) | 如果需要声明队列而不是交换,可以使用它 | false | 布尔值 |
skipQueueBind (common) | 如果为 true,则在声明后队列不会绑定到交换 | false | 布尔值 |
skipQueueDeclare (common) | 如果为 true,则生成者不会声明和绑定队列。这可用于通过现有的路由密钥指示消息。 | false | 布尔值 |
vhost (common) | 频道的 vhost | / | 字符串 |
autoAck (consumer) | 如果应该自动确认消息 | true | 布尔值 |
bridgeErrorHandler (consumer) | 允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。 | false | 布尔值 |
concurrentConsumers (consumer) | 从代理消耗时并发消费者数量。(与 JMS 组件相同的选项类似)。 | 1 | int |
exclusiveConsumer (consumer) | 请求对队列进行独占访问(注意只有此使用者可以访问队列)。当您希望一个长期共享队列被一个消费者临时访问时,这很有用。 | false | 布尔值 |
prefetchCount (consumer) | 服务器将发送的最大消息数为 0 (如果没有限制)。您需要同时指定 prefetchSize、prefetchCount、prefetchGlobal 的选项 | int | |
prefetchEnabled (consumer) | 在 RabbitMQConsumer 端启用服务质量。您需要同时指定 prefetchSize、prefetchCount、prefetchGlobal 的选项 | false | 布尔值 |
prefetchGlobal (consumer) | 如果设置应该应用到整个频道,而不是每个消费者,您需要同时指定 prefetchSize、prefetchCount、prefetchCount、prefetchGlobal | false | 布尔值 |
prefetchSize (consumer) | 服务器将提供的最大内容量(以八位字节表示),如果无限,则会提供 0。您需要同时指定 prefetchSize、prefetchCount、prefetchGlobal 的选项 | int | |
ExceptionHandler ( consumer) | 要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。 | ExceptionHandler | |
exchangePattern (consumer) | 在消费者创建交换时设置交换模式。 | ExchangePattern | |
threadPoolSize (consumer) | 使用者使用带有固定线程数的线程池可执行文件。此设置允许您设置该线程数量。 | 10 | int |
allowNullHeaders (producer) | 允许将 null 值传递给标头 | false | 布尔值 |
bridgeEndpoint (producer) | 如果 bridgeEndpoint 为 true,则生成者将忽略 rabbitmq.EXCHANGE_NAME 和 rabbitmq.ROUTING_KEY 的消息标头 | false | 布尔值 |
channelPoolMaxSize (producer) | 获取池中打开的最大频道数 | 10 | int |
channelPoolMaxWait (producer) | 设置从池中等待频道的最大毫秒数 | 1000 | long |
guaranteedDeliveries (producer) | 为 true 时,当无法发送消息时(basic.return)并且消息被标记为 mandatory 时,会抛出异常。在这种情况下,发布者也会被激活。另请参阅发布者确认 - 消息将被确认的时间。 | false | 布尔值 |
immediate (producer) | 此标志告诉服务器如何在消息无法立即路由到队列消费者时做出反应。如果设置了此标志,服务器将使用返回方法返回一个 undeliverable 消息。如果此标志为零,服务器会将该消息排队,但不保证使用它。如果标头存在 rabbitmq.IMMEDIATE,它将覆盖此选项。 | false | 布尔值 |
mandatory (producer) | 此标志告诉服务器如何在消息无法路由到队列时做出反应。如果设置了此标志,服务器将使用返回方法返回无法路由的消息。如果此标志为零,则服务器会静默丢弃消息。如果标题为 rabbitmq.MANDATORY,它将覆盖此选项。 | false | 布尔值 |
publisherAcknowledgements (producer) | 为 true 时,消息将发布并打开发布发布者确认信息 | false | 布尔值 |
publisherAcknowledgements Timeout (producer) | 从 RabbitMQ 服务器等待基本.ack 响应的时间(以毫秒为单位) | long | |
args (advanced) | 指定用于配置不同的 RabbitMQ 概念的参数,每个概念都需要一个不同的前缀: Exchange: arg.exchange。queue:arg.queue.binding:arg.binding.例如,使用 message ttl 参数声明队列: http://localhost:5672/exchange/queueargs=arg.queue.x-message-ttl=60000 | Map | |
automaticRecoveryEnabled (advanced) | 启用连接自动恢复(使用在应用程序不启动连接关闭时执行自动恢复) | 布尔值 | |
bindingArgs (advanced) | 弃用了 Key/value args,用于在 declare=true 时配置队列绑定参数 | Map | |
clientProperties (advanced) | 连接客户端属性(在服务器中使用的客户端信息) | Map | |
connectionTimeout (advanced) | 连接超时 | 60000 | int |
exchangeArgs (advanced) | 弃用了 Key/value args,用于在 declare=true 时配置交换参数 | Map | |
exchangeArgsConfigurer (advanced) | 弃用的 设置配置器,以在 Channel.exchangeDeclare 中设置交换参数 | ArgsConfigurer | |
networkRecoveryInterval (advanced) | 以毫秒为单位的网络恢复间隔(从网络故障中恢复时使用的interval) | 5000 | 整数 |
queueArgs (advanced) | 弃用了 Key/value args,用于在 declare=true 时配置队列参数 | Map | |
queueArgsConfigurer (advanced) | 弃用的 设置配置器,以在 Channel.queueDeclare 中设置 queue args | ArgsConfigurer | |
requestedChannelMax (advanced) | 请求的连接频道最大数(提供的最大频道数) | 2047 | int |
requestedFrameMax (advanced) | 请求的连接帧最大范围(提供的帧的最大大小) | 0 | int |
requestedHeartbeat (advanced) | 请求的连接心跳(以秒为单位) | 60 | int |
requestTimeout (advanced) | 设置在使用 InOut Exchange Pattern 时等待回复的超时(以毫秒为单位) | 20000 | long |
requestTimeoutChecker Interval (advanced) | 为 inOut 交换设置 requestTimeoutCheckerInterval | 1000 | long |
同步 (高级) | 设置是否应严格使用同步处理,还是允许 Camel 使用异步处理(如果支持)。 | false | 布尔值 |
topologyRecoveryEnabled (advanced) | 启用连接拓扑恢复(应该执行拓扑恢复) | 布尔值 | |
transferException (advanced) | 当对消费者进行 true 和 inOut Exchange 时,发送 caused Exception 返回响应中 | false | 布尔值 |
密码 (security) | 验证访问的密码 | Guest | 字符串 |
SSLProtocol ( security) | 在连接中启用 SSL,接受的值为 true、TLS 和 'SSLv3 | 字符串 | |
trustmanager (security) | 配置 SSL 信任管理器,应该启用 SSL 才能使此选项生效 | TrustManager | |
用户名 (security) | 身份验证访问时的用户名 | Guest | 字符串 |