297.2. 选项
SEDA 组件支持 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 | 布尔值 |
SEDA 端点使用 URI 语法进行配置:
seda:name
使用以下路径和查询参数:
297.2.1. 路径参数(1 参数):
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
name | 所需 队列的名称 | 字符串 |
297.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 | 布尔值 |