297.2. 选项


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

名称描述默认值类型

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

布尔值

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

seda:name

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

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

名称描述默认值类型

name

所需的 队列名称

 

字符串

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

名称描述默认值类型

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。最后的值(ifReplyExpected)将仅在消息是 Request Reply based 时等待。默认选项为 IfReplyExpected。

IfReplyExpected

WaitForTaskToComplete

queue (advanced)

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

 

BlockingQueue

同步 (advanced)

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

false

布尔值

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.