85.2. 选项
所有以下选项都对 disruptor: 和 disruptor-vm: 组件都有效。
Disruptor 组件支持 8 个选项,如下所列。
名称 | 描述 | 默认值 | 类型 |
---|---|---|---|
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 | 所需的 队列名称 | 字符串 |
85.2.2. 查询参数(12 参数):
名称 | 描述 | 默认值 | 类型 |
---|---|---|---|
size (common) | Disruptors ringbuffer 的最大容量将有效地增加到最接近的 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。最后的值(ifReplyExpected)将仅在消息是 Request Reply based 时等待。 | IfReplyExpected | WaitForTaskToComplete |
同步 (advanced) | 设置是否应严格使用同步处理,或者 Camel 允许使用异步处理(如果受支持)。 | false | 布尔值 |