365.2. 选项


VM 组件支持 6 个选项,如下所列。

Name描述默认值类型

queueSize (advanced)

设置 SEDA 队列的默认最大容量(例如,它可以保存的消息数)。

1000

int

concurrentConsumers (consumer)

设置默认的并发线程处理交换数。

1

int

defaultQueueFactory (advanced)

设置默认队列工厂。

 

BlockingQueueFactory

defaultBlockWhenFull (producer)

将消息发送到完整 SEDA 队列的线程将阻止,直到队列的容量不再耗尽为止。默认情况下,会抛出一个异常,表示队列已满。通过启用这个选项,调用线程将阻止并等待消息被接受。

false

布尔值

defaultOfferTimeout (producer)

将消息发送到完整 SEDA 队列的线程将阻止,直到队列的容量不再耗尽为止。默认情况下,会抛出一个异常,表示队列已满。通过启用这个选项,可以将配置超时添加到块问题单中。使用lining java 队列的 .offer (timeout)方法

 

long

resolveProperty Placeholders (advanced)

组件是否应在启动时解析属性占位符。只有 String 类型的属性可以使用属性占位符。

true

布尔值

VM 端点使用 URI 语法进行配置:

vm:name

使用以下路径和查询参数:

365.2.1. 路径参数(1 参数):

Name描述默认值类型

name

所需 队列的名称

 

字符串

365.2.2. 查询参数(17 参数):

Name描述默认值类型

size (common)

SEDA 队列的最大容量(例如,它可以保存的消息数)。默认情况下,将使用 SEDA 组件上设置的 defaultSize。

1000

int

bridgeErrorHandler (consumer)

允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外,该处理程序记录在 WARN/ERROR 级别并忽略。

false

布尔值

concurrentConsumers (consumer)

并发线程处理交换的数量。

1

int

ExceptionHandler ( consumer)

要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,该例外记录在 WARN/ERROR 级别并忽略。

 

ExceptionHandler

exchangePattern (consumer)

在创建交换时设置默认交换模式。

 

ExchangePattern

limitConcurrentConsumers (consumer)

是否将 concurrentConsumers 的数量限制为最多 500。默认情况下,如果端点配置了更大的数字,则会抛出异常。您可以通过关闭这个选项来禁用该检查。

true

布尔值

multipleConsumers (consumer)

指定是否允许多个消费者。如果启用,您可以使用 SEDA 进行 Publish-Subscribe 消息。也就是说,您可以向 SEDA 队列发送消息,并让每个消费者收到邮件的副本。启用后,应在每个消费者端点上指定此选项。

false

布尔值

pollTimeout (consumer)

轮询时使用的超时。发生超时时,使用者可以检查是否允许继续运行。设置较低值可让使用者在关闭时更快地做出反应。

1000

int

purgeWhenStopping (consumer)

在停止 consumer/route 时是否清除任务队列。这允许更快地停止,因为队列中的任何待处理消息都会被丢弃。

false

布尔值

blockWhenFull (producer)

将消息发送到完整 SEDA 队列的线程将阻止,直到队列的容量不再耗尽为止。默认情况下,会抛出一个异常,表示队列已满。通过启用这个选项,调用线程将阻止并等待消息被接受。

false

布尔值

discardIfNoConsumers (producer)

当发送到没有活跃消费者的队列时,生成者是否应该丢弃消息(不要将消息添加到队列)。可以同时启用其中一个选项 discardIfNoConsumers 和 failIfNoConsumers。

false

布尔值

failIfNoConsumers (producer)

当发送到没有活跃用户的队列时,生成者是否应该通过抛出异常。可以同时启用其中一个选项 discardIfNoConsumers 和 failIfNoConsumers。

false

布尔值

offerTimeout (producer)

当队列已满时,可以使用 offerTimeout (毫秒)添加到块问题单中。您可以使用 0 或负值禁用超时。

 

long

timeout (producer)

SEDA 生成者停止等待异步任务完成前的超时(以毫秒为单位)。您可以使用 0 或负值禁用超时。

30000

long

waitForTaskToComplete (producer)

选项指定调用者是否应该等待 async 任务在继续前等待。支持以下三个选项: Always、Never 或 IfReplyExpected。前两个值为 self-explanatory。最后的值如果为 Request ReplyExpected,只有在消息是 Request Reply based 时等待。默认选项为 IfReplyExpected。

IfReplyExpected

WaitForTaskToComplete

队列 (advanced)

定义供端点使用的队列实例。这个选项只适用于您要使用自定义队列实例的个别用例。

 

BlockingQueue

同步 (高级)

设置是否应严格使用同步处理,还是允许 Camel 使用异步处理(如果支持)。

false

布尔值

有关适用于 Vm 组件的同一规则的选项和其他重要用法详情,请参阅 Seda 组件。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.