85.2. 选项


所有以下选项都对 disruptor:disruptor-vm: 组件都有效。

Disruptor 组件支持 8 个选项,如下所列。

Name描述默认值类型

defaultConcurrent Consumers (consumer)

配置默认的并发消费者数

1

int

defaultMultiple Consumers (consumer)

为多个消费者配置默认值

false

布尔值

defaultProducerType (producer)

要为 DisruptorProducerType 配置默认值,默认值为 Multi。

multi

DisruptorProducerType

defaultWaitStrategy (consumer)

要为 DisruptorWaitStrategy 配置默认值,默认值为 Blocking。

Blocking

DisruptorWaitStrategy

defaultBlockWhenFull (producer)

当 full 的默认值为 true 时,要为 block 配置默认值。

true

布尔值

queueSize (common)

弃用 以配置环缓冲大小

 

int

bufferSize (common)

配置环缓冲大小

1024

int

resolveProperty Placeholders (advanced)

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

true

布尔值

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

disruptor:name

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

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

Name描述默认值类型

name

所需 队列的名称

 

字符串

85.2.2. 查询参数(12 参数):

Name描述默认值类型

size (common)

Disruptors 环缓冲的最大容量将有效增加到最接近 2 的指数。注意:如果使用这个选项,则使用队列名称创建的第一个端点,则决定大小。为确保所有端点都使用相同的大小,请在所有这些端点或创建的第一个端点上配置 size 选项。

1024

int

bridgeErrorHandler (consumer)

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

false

布尔值

concurrentConsumers (consumer)

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

1

int

multipleConsumers (consumer)

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

false

布尔值

waitStrategy (consumer)

定义消费者线程用于在发布新交换时等待的策略。允许的选项有:Blocking、Sleeping、BusySpin 和 Yielding。

Blocking

DisruptorWaitStrategy

ExceptionHandler ( consumer)

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

 

ExceptionHandler

exchangePattern (consumer)

在消费者创建交换时设置交换模式。

 

ExchangePattern

blockWhenFull (producer)

将消息发送到完全 Disruptor 的线程将阻止,直到环缓冲区的容量不再耗尽为止。默认情况下,调用线程将阻止并等待消息被接受。禁用这个选项后,会抛出一个例外,表示队列已满。

false

布尔值

producerType (producer)

定义在 Disruptor 上允许的制作者。允许的选项有: Multi to allow multiple producers 和 Single,仅在一个并发制作者(在一个线程或其他同步)处于活跃状态时才允许进行某些优化。

multi

DisruptorProducerType

timeout (producer)

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

30000

long

waitForTaskToComplete (producer)

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

IfReplyExpected

WaitForTaskToComplete

同步 (高级)

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

false

布尔值

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.