63.4. 端点选项
Spring RabbitMQ 端点使用 URI 语法进行配置:
spring-rabbitmq:exchangeName
以下是 path 和 query 参数:
63.4.1. 路径参数(1 参数)
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
exchangeName (common) | 必需 交换名称,决定生成的消息要发送到的交换。如果是消费者,交换名称决定了队列将绑定到的交换。注意:要使用默认交换,则不要使用空名称,而是使用 default。 | 字符串 |
63.4.2. 查询参数(34 参数)
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
ConnectionFactory (common) | 要使用的连接工厂。必须在组件或端点上配置连接工厂。 | ConnectionFactory | |
disableReplyTo (common) | 指定 Camel 是否忽略消息中的 ReplyTo 标头。如果为 true,Camel 不会向 ReplyTo 标头中指定的目的地发送回复。如果您希望 Camel 从路由中消耗,并且您不希望 Camel 自动发送回复消息,则可以使用此选项,因为代码中的另一个组件处理回复消息。如果要在不同的消息代理之间将 Camel 用作代理,并且希望将消息从一个系统路由到另一个系统,也可以使用此选项。 | false | 布尔值 |
routingKey (common) | 要使用的路由键的值。默认为空,在使用默认(或任何直接)交换时很有用,但如果交换是实例的标头交换,则正常操作。 | 字符串 | |
testConnectionOnStartup (common) | 指定是否在启动时测试连接。这样可确保 Camel 启动所有 JMS 用户与 JMS 代理的有效连接。如果无法授予连接,则 Camel 会在启动时抛出异常。这样可确保 Camel 没有使用失败的连接启动。JMS producer 也经过测试。 | false | 布尔值 |
acknowledgeMode (consumer) | 控制容器的行为与消息确认相关的标志。最常见的用法是让容器处理确认(因此,侦听器不需要了解频道或消息)。如果监听器将使用 Channel.basicAck (long, boolean)发送确认,则设置为 AcknowledgeMode.MANUAL。手动攻击与事务或非事务频道一致,但如果您没有其他工作,而不是接收单个消息,则事务可能是不必要的。设置为 AcknowledgeMode.NONE 以告知代理不会期望任何确认,它会假定所有消息在发送后马上被确认(这在原生 Rabbit 代理术语中自动确认)。如果 AcknowledgeMode.NONE,则频道无法事务处理(因此如果该标志意外设置了该标志,容器将失败)。 Enum 值:
| AcknowledgeMode | |
asyncConsumer (consumer) | 消费者是否异步处理交换。如果启用,消费者可以从队列中获取下一个消息,而前面的消息会被异步处理(由异步路由引擎)。这意味着消息可能没有完全严格按照顺序进行处理。如果禁用(作为默认),则在消费者从队列中获取下一个消息前完全处理交换。 | false | 布尔值 |
autoDeclare (consumer) | 指定消费者是否应该在启动时自动声明交换、队列和路由密钥之间的绑定。 | true | 布尔值 |
autoStartup (consumer) | 指定消费者容器是否应自动启动。 | true | 布尔值 |
deadLetterExchange (consumer) | 死信交换的名称。 | 字符串 | |
deadLetterExchangeType (consumer) | 死信交换的类型。 Enum 值:
| direct | 字符串 |
deadLetterQueue (consumer) | 死信队列的名称。 | 字符串 | |
deadLetterRoutingKey (consumer) | 死信交换的路由密钥。 | 字符串 | |
exchangeType (consumer) | 交换的类型。 Enum 值:
| direct | 字符串 |
exclusive (consumer) | 对于专用消费者,设置为 true。 | false | 布尔值 |
maximumRetryAttempts (consumer) | 如果 Camel 无法处理消息,则 Rabbitmq 使用者将重试相同的消息的次数。 | 5 | int |
noLocal (consumer) | 对于非本地消费者,设置为 true。 | false | 布尔值 |
Queue (consumer) | 用于消耗消息的队列。可以使用逗号分隔多个队列名称。如果尚未配置任何配置,则 Camel 将生成唯一 id 作为消费者的队列名称。 | 字符串 | |
rejectAndDontRequeue (consumer) | Rabbitmq 使用者是否应该拒绝消息,而无需重新排队。这可让配置了代理,将失败的消息发送到 Dead Letter Exchange/Queue。 | true | 布尔值 |
retryDelay (consumer) | 在 msec 中,Rabbitmq 消费者将在 Camel 无法处理的消息前等待。 | 1000 | int |
bridgeErrorHandler (consumer (advanced)) | 允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。 | false | 布尔值 |
concurrentConsumers (consumer (advanced)) | 用户数量。 | 整数 | |
exceptionHandler (consumer (advanced)) | 要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。 | ExceptionHandler | |
exchangePattern (consumer (advanced)) | 在消费者创建交换时设置交换模式。 Enum 值:
| ExchangePattern | |
maxConcurrentConsumers (consumer (advanced)) | 使用者的最大数量(仅适用于 SMLC)。 | 整数 | |
messageListenerContainerType (consumer (advanced)) | MessageListenerContainer 的类型。 Enum 值:
| DMLC | 字符串 |
prefetchCount (consumer (advanced)) | 告知代理在单个请求中发送多少消息。通常,这可以设置得非常高,以提高吞吐量。 | 整数 | |
retry (consumer (advanced)) | 要使用的自定义重试配置。如果这被配置,则不会使用用于重试的 maximumRetryAttempts 等其他设置。 | RetryOperationsInterceptor | |
replyTimeout (producer) | 在执行请求/回复消息时,指定在等待回复消息时使用的超时时间(以毫秒为单位)。默认值为 5 秒。负值表示一个不正确的超时。 | 5000 | long |
usePublisherConnection (producer) | 为发布者和消费者使用单独的连接。 | false | 布尔值 |
lazyStartProducer (producer (advanced)) | 生成者是否应懒惰启动 (在第一个消息中)。通过懒惰启动,您可以使用此选项来允许 CamelContext 和路由在生成者启动期间启动,并导致路由启动失败。通过懒惰启动,启动失败可以在路由信息时通过 Camel 的路由错误处理程序进行处理。请注意,在处理第一个消息时,创建并启动生成者可能需要稍等时间,并延长处理的总处理时间。 | false | 布尔值 |
args (advanced) | 指定用于配置不同 RabbitMQ 概念的参数,每个元素都需要不同的前缀:arg.consumer. arg.exchange. arg.queue. arg.queue. arg.dlq.exchange. arg.dlq.queue. arg.dlq.binding。例如,使用消息 ttl 参数声明队列:args=arg.queue.x-message-ttl=60000。 | Map | |
messageConverter (advanced) | 要使用自定义的 MessageConverter,以便您可以控制如何映射到 org.springframework.amqp.core.Message。 | MessageConverter | |
messagePropertiesConverter (advanced) | 要使用自定义 MessagePropertiesConverter,以便您可以控制如何映射到 org.springframework.amqp.core.MessageProperties。 | MessagePropertiesConverter | |
Sync (advanced) | 设置是否应严格使用同步处理。 | false | 布尔值 |