272.2. 选项
RabbitMQ 组件支持 50 个选项,如下所列。
名称 | 描述 | 默认值 | 类型 |
---|---|---|---|
hostname (common) | 正在运行的 RabbitMQ 实例或集群的主机名。 | 字符串 | |
portNumber (common) | 带有正在运行的 rabbitmq 实例或集群的主机的端口号。 | 5672 | int |
用户名 (安全性) | 如果通过身份验证访问,则用户名 | guest | 字符串 |
password (security) | 身份验证访问的密码 | guest | 字符串 |
vhost (common) | 频道的 vhost | / | 字符串 |
addresses (common) | 如果设置了此选项,则 camel-rabbitmq 将尝试根据选项地址的设置来创建连接。address 值是一个字符串,它类似于 server1:12345, server2:12345 | 字符串 | |
connectionFactory (common) | 使用自定义 RabbitMQ 连接工厂。当设定这个选项时,不会使用 URI 上设置的所有连接选项(connectionTimeout, requestedChannelMax…) | ConnectionFactory | |
threadPoolSize (consumer) | 消费者使用带有固定数量线程数的线程池 Executor。此设置允许您设置那个线程数。 | 10 | int |
autoDetectConnection Factory (advanced) | 是否从 registry 中自动检测 RabbitMQ 连接工厂。启用和找到连接工厂的单个实例后,它将被使用。可以在具有优先权的组件或端点级别上配置显式连接工厂。 | true | 布尔值 |
connectionTimeout (advanced) | 连接超时 | 60000 | int |
requestedChannelMax (advanced) | 连接请求的频道最大(提供的最大频道数) | 2047 | int |
requestedFrameMax (advanced) | 连接请求的帧最大(提供的最大帧大小) | 0 | int |
requestedHeartbeat (advanced) | 连接请求 heartbeat (以秒为单位) | 60 | int |
automaticRecovery Enabled (advanced) | 启用连接自动恢复(使用在应用程序没有启动连接关闭时执行自动恢复的连接实现) | 布尔值 | |
networkRecoveryInterval (advanced) | 网络恢复间隔(以毫秒为单位)(在从网络故障中恢复时使用的时间) | 5000 | 整数 |
topologyRecoveryEnabled (advanced) | 启用连接拓扑恢复(应执行拓扑恢复) | 布尔值 | |
prefetchEnabled (consumer) | 在 RabbitMQConsumer 端启用服务质量。您需要同时指定 prefetchSize, prefetchCount, prefetchGlobal 选项 | false | 布尔值 |
prefetchSize (consumer) | 服务器将提供的最大内容量(以八位字节为单位)您需要同时指定 prefetchSize, prefetchCount, prefetchGlobal 选项 | int | |
prefetchCount (consumer) | 服务器将交付的最大消息数为 0 (如果没有限制)。您需要同时指定 prefetchSize, prefetchCount, prefetchGlobal 选项 | int | |
prefetchGlobal (consumer) | 如果设置应用于整个频道,而不是每个消费者,则需要同时指定 prefetchSize, 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 失败时,会在响应中发回原因例外 | false | 布尔值 |
publisher Acknowledgements (producer) | 为 true 时,该消息将在发布者被打开时发布 | false | 布尔值 |
publisher AcknowledgementsTimeout (producer) | 从 RabbitMQ 服务器等待 basic.ack 响应的时间(以毫秒为单位) | long | |
guaranteedDeliveries (producer) | 为 true 时,当消息无法发送时(basic.return)并且消息被标记为必需时,会抛出异常。本例中也会激活 publisherAcknowledgement。另请参阅发布者确认 - 将确认何时。 | false | 布尔值 |
mandatory (producer) | 此标志告知服务器在无法路由到队列时如何响应。如果设置了此标志,服务器将返回带有 return 方法的不可路由消息。如果此标志为零,服务器会静默丢弃消息。如果标头存在 rabbitmq.MANDATORY,它将覆盖此选项。 | false | 布尔值 |
immediate (producer) | 此标志告知服务器在无法立即路由到队列消费者时做出反应。如果设置了此标志,服务器将使用返回方法返回不活动的消息。如果此标志为零,服务器将对消息进行队列,但不保证它将被消耗。如果标头存在 rabbitmq.IMMEDIATE,它将覆盖此选项。 | false | 布尔值 |
args (advanced) | 指定用于配置不同 RabbitMQ 概念的参数,每个概念都需要不同的前缀: Exchange: arg.exchange。queue:arg.queue.绑定:arg.binding.例如,使用消息 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 | 布尔值 |
autoDelete (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
使用以下路径和查询参数:
272.2.1. 路径参数(1 参数):
名称 | 描述 | 默认值 | 类型 |
---|---|---|---|
exchangeName | 必需。交换名称决定生成的消息将发送到的交换。如果是消费者,交换名称决定了队列将绑定到哪个交换。 | 字符串 |
272.2.2. 查询参数(62 参数):
名称 | 描述 | 默认值 | 类型 |
---|---|---|---|
addresses (common) | 如果设置了此选项,则 camel-rabbitmq 将尝试根据选项地址的设置来创建连接。address 值是一个字符串,它类似于 server1:12345, server2:12345 | Address[] | |
autoDelete (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 | 字符串 |
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, prefetchGlobal 选项 | false | 布尔值 |
prefetchSize (consumer) | 服务器将提供的最大内容量(以八位字节为单位)您需要同时指定 prefetchSize, prefetchCount, prefetchGlobal 选项 | int | |
exceptionHandler (consumer) | 要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。 | ExceptionHandler | |
exchangePattern (consumer) | 在消费者创建交换时设置交换模式。 | ExchangePattern | |
threadPoolSize (consumer) | 消费者使用带有固定数量线程数的线程池 Executor。此设置允许您设置那个线程数。 | 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)并且消息被标记为必需时,会抛出异常。本例中也会激活 publisherAcknowledgement。另请参阅发布者确认 - 将确认何时。 | false | 布尔值 |
immediate (producer) | 此标志告知服务器在无法立即路由到队列消费者时做出反应。如果设置了此标志,服务器将使用返回方法返回不活动的消息。如果此标志为零,服务器将对消息进行队列,但不保证它将被消耗。如果标头存在 rabbitmq.IMMEDIATE,它将覆盖此选项。 | false | 布尔值 |
mandatory (producer) | 此标志告知服务器在无法路由到队列时如何响应。如果设置了此标志,服务器将返回带有 return 方法的不可路由消息。如果此标志为零,服务器会静默丢弃消息。如果标头存在 rabbitmq.MANDATORY,它将覆盖此选项。 | false | 布尔值 |
publisherAcknowledgements (producer) | 为 true 时,该消息将在发布者被打开时发布 | false | 布尔值 |
publisherAcknowledgements Timeout (producer) | 从 RabbitMQ 服务器等待 basic.ack 响应的时间(以毫秒为单位) | long | |
args (advanced) | 指定用于配置不同 RabbitMQ 概念的参数,每个概念都需要不同的前缀: Exchange: arg.exchange。queue:arg.queue.绑定:arg.binding.例如,使用消息 ttl 参数声明队列: http://localhost:5672/exchange/queueargs=arg.queue.x-message-ttl=60000 | Map | |
automaticRecoveryEnabled (advanced) | 启用连接自动恢复(使用在应用程序没有启动连接关闭时执行自动恢复的连接实现) | 布尔值 | |
bindingArgs (advanced) | 弃用了 Key/value args,用于在 claim=true 中配置队列绑定参数 | Map | |
clientProperties (advanced) | 连接客户端属性(与服务器协商中使用的客户端信息) | Map | |
connectionTimeout (advanced) | 连接超时 | 60000 | int |
exchangeArgs (advanced) | 弃用了 Key/value 参数,用于在 claim=true 中配置交换参数 | Map | |
exchangeArgsConfigurer (advanced) | 弃用 设置配置器,以在 Channel.exchangeDeclare 中设置交换参数 | ArgsConfigurer | |
networkRecoveryInterval (advanced) | 网络恢复间隔(以毫秒为单位)(在从网络故障中恢复时使用的时间) | 5000 | 整数 |
queueArgs (advanced) | 弃用的 Key/value args,用于在 claim=true 中配置队列参数 | Map | |
queueArgsConfigurer (advanced) | 弃用 设置配置器,以在 Channel.queueDeclare 中设置队列参数 | ArgsConfigurer | |
requestedChannelMax (advanced) | 连接请求的频道最大(提供的最大频道数) | 2047 | int |
requestedFrameMax (advanced) | 连接请求的帧最大(提供的最大帧大小) | 0 | int |
requestedHeartbeat (advanced) | 连接请求 heartbeat (以秒为单位) | 60 | int |
requestTimeout (advanced) | 在使用 InOut Exchange Pattern 时设置等待回复的超时(以毫秒为单位) | 20000 | long |
requestTimeoutChecker Interval (advanced) | 为 inOut 交换设置 requestTimeoutCheckerInterval | 1000 | long |
同步 (advanced) | 设置是否应严格使用同步处理,或者 Camel 允许使用异步处理(如果受支持)。 | false | 布尔值 |
topologyRecoveryEnabled (advanced) | 启用连接拓扑恢复(应执行拓扑恢复) | 布尔值 | |
transferException (advanced) | 当消费者端的 true 和 inOut Exchange 失败时,会在响应中发回原因例外 | false | 布尔值 |
password (security) | 身份验证访问的密码 | guest | 字符串 |
sslProtocol (security) | 在连接中启用 SSL,接受的值是 true、TLS 和 'SSLv3 | 字符串 | |
trustManager (security) | 配置 SSL 信任管理器,应启用 SSL 才能使此选项生效 | TrustManager | |
用户名 (安全性) | 如果通过身份验证访问,则用户名 | guest | 字符串 |