133.4. 组件选项
Spring RabbitMQ 组件支持 29 个选项,如下所列。
| Name | 描述 | 默认值 | 类型 |
|---|---|---|---|
| amqpAdmin (common) | Autowired 可选 AMQP Admin 服务用于自动声明元素(queues、交换、绑定)。 | AmqpAdmin | |
| ConnectionFactory (common) | Autowired 要使用的连接工厂。必须在组件或端点上配置连接工厂。 | ConnectionFactory | |
| testConnectionOnStartup (common) | 指定是否在启动时测试连接。这样可确保当 Camel 启动所有 JMS 用户与 JMS 代理的有效连接时。如果无法授予连接,则 Camel 会在启动时抛出异常。这样可确保 Camel 不使用失败的连接启动。JMS producers 也经过测试。 | false | 布尔值 |
| autoDeclare (consumer) | 指定消费者是否应在启动时自动声明交换、队列和路由密钥之间的绑定。为开发启用此功能,以便更轻松地在代理上备份交换、队列和绑定。 | false | 布尔值 |
| autoStartup (consumer) | 指定消费者容器是否应自动启动。 | true | 布尔值 |
| bridgeErrorHandler (consumer) | 允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。 | false | 布尔值 |
| deadLetterExchange (consumer) | 死信交换的名称。 | 字符串 | |
| deadLetterExchangeType (consumer) | 死信交换的类型。 Enum 值:
| direct | 字符串 |
| deadLetterQueue (consumer) | 死信队列的名称。 | 字符串 | |
| deadLetterRoutingKey (consumer) | 死信交换的路由密钥。 | 字符串 | |
| maximumRetryAttempts (consumer) | 如果 Camel 无法处理消息,则 Rabbitmq 使用者将重试同一消息的次数。 | 5 | int |
| rejectAndDontRequeue (consumer) | Rabbitmq 使用者是否应该拒绝消息,而不会重新排队。这可让失败的消息发送到 Dead Letter Exchange/Queue (如果代理配置)。 | true | 布尔值 |
| retryDelay (consumer) | msec 中的延迟会延迟 Rabbitmq 使用者,然后会等待 Camel 无法处理的消息。 | 1000 | int |
| concurrentConsumers (consumer (advanced)) | 用户数量。 | 1 | int |
| errorHandler (consumer (advanced)) | 使用自定义 ErrorHandler 处理来自消息监听器(consumer)的例外。 | ErrorHandler | |
| listenerContainerFactory (consumer (advanced)) | 使用自定义工厂来创建和配置 ListenerContainer,供消费者用来接收消息。 | ListenerContainerFactory | |
| maxConcurrentConsumers (consumer (advanced)) | 最多消费者数量(仅适用于 SMLC)。 | 整数 | |
| messageListenerContainerType (consumer (advanced)) | MessageListenerContainer 的类型。 Enum 值:
| DMLC | 字符串 |
| prefetchCount (consumer (advanced)) | 告知代理在单个请求中要发送到每个消费者的消息数量。这通常设置得非常高,以提高吞吐量。 | 250 | int |
| retry (consumer (advanced)) | 要使用的自定义重试配置。如果进行了此配置,则使用其他设置,如重试的 maximumRetryAttempts。 | RetryOperationsInterceptor | |
| shutdownTimeout (consumer (advanced)) | 容器停止后等待 worker 的时间(毫秒)。如果任何 worker 处于活动状态,只要在超时内完成关闭信号,就可以完成处理。 | 5000 | long |
| allowNullBody (producer) | 是否允许发送没有正文的消息。如果此选项为 false,并且消息正文为 null,则抛出 MessageConversionException。 | false | 布尔值 |
| lazyStartProducer (producer) | 生成者是否应懒惰启动 (在第一个消息中)。通过懒惰启动,您可以使用此选项来允许 CamelContext 和路由在生成者启动期间启动,并导致路由启动失败。通过懒惰启动,启动失败可以在路由信息时通过 Camel 的路由错误处理程序进行处理。请注意,在处理第一个消息时,创建并启动生成者可能需要稍等时间,并延长处理的总处理时间。 | false | 布尔值 |
| replyTimeout (producer) | 指定在进行请求/回复消息传递时等待回复消息时使用的超时时间(毫秒)。默认值为 5 秒。负值表示无限期超时。 | 5000 | long |
| autowiredEnabled (advanced) | 是否启用自动关闭。这用于自动关闭选项(选项必须标记为 autowired),方法是在 registry 中查找查找是否有单个匹配类型实例,然后在组件上配置。这可以用于自动配置 JDBC 数据源、JMS 连接工厂、AWS 客户端等。 | true | 布尔值 |
| ignoreDeclarationExceptions (advanced) | 在声明时,切换到忽略异常,如不匹配的属性。 | false | 布尔值 |
| messageConverter (advanced) | 要使用自定义 MessageConverter,您可以控制如何映射到 org.springframework.amqp.core.Message。 | MessageConverter | |
| messagePropertiesConverter (advanced) | 要使用自定义 MessagePropertiesConverter,您可以控制如何映射到 org.springframework.amqp.core.MessageProperties。 | MessagePropertiesConverter | |
| headerFilterStrategy (filter) | 使用自定义 org.apache.camel.spi.HeaderFilterStrategy 过滤到 Camel 消息的标头。 | HeaderFilterStrategy |