搜索

63.4. 端点选项

download PDF

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 值:

  • NONE
  • 手动
  • AUTO
 

AcknowledgeMode

asyncConsumer (consumer)

消费者是否异步处理交换。如果启用,消费者可以从队列中获取下一个消息,而前面的消息会被异步处理(由异步路由引擎)。这意味着消息可能没有完全严格按照顺序进行处理。如果禁用(作为默认),则在消费者从队列中获取下一个消息前完全处理交换。

false

布尔值

autoDeclare (consumer)

指定消费者是否应该在启动时自动声明交换、队列和路由密钥之间的绑定。

true

布尔值

autoStartup (consumer)

指定消费者容器是否应自动启动。

true

布尔值

deadLetterExchange (consumer)

死信交换的名称。

 

字符串

deadLetterExchangeType (consumer)

死信交换的类型。

Enum 值:

  • direct
  • fanout
  • 标头
  • topic

direct

字符串

deadLetterQueue (consumer)

死信队列的名称。

 

字符串

deadLetterRoutingKey (consumer)

死信交换的路由密钥。

 

字符串

exchangeType (consumer)

交换的类型。

Enum 值:

  • direct
  • fanout
  • 标头
  • topic

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 值:

  • InOnly
  • InOut
  • InOptionalOut
 

ExchangePattern

maxConcurrentConsumers (consumer (advanced))

使用者的最大数量(仅适用于 SMLC)。

 

整数

messageListenerContainerType (consumer (advanced))

MessageListenerContainer 的类型。

Enum 值:

  • DMLC
  • SMLC

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

布尔值

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.