第 139 章 Hazelcast SEDA 组件

可作为 Camel 版本 2.7 提供

Hazelcast SEDA 组件是 Camel Hazelcast 组件之一,它允许您访问 Hazelcast BlockingQueue。SEDA 组件与提供的其余组件不同。它实施工作队列以支持异步 SEDA 架构,类似于核心"SEDA"组件。

139.1. 选项

Hazelcast SEDA 组件支持 3 个选项,它们如下所列。

名称描述默认类型

hazelcastInstance (advanced)

hazelcast 实例参考,可用于 hazelcast 端点。如果没有指定实例引用,则 camel 使用 camel-hazelcast 实例中的默认 hazelcast 实例。

 

HazelcastInstance

hazelcastMode (advanced)

应使用哪种实例的 hazelcast 模式。如果没有指定模式,则节点模式将是默认设置。

node

字符串

resolveProperty Placeholders (advanced)

启动时,组件是否应自行解析属性占位符。只有 String 类型的属性才能使用属性占位符。

true

布尔值

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

hazelcast-seda:cacheName

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

139.1.1. 路径名(1 参数):

名称描述默认类型

cacheName

所需的 缓存名称

 

字符串

139.1.2. 查询参数(16 参数):

名称描述默认类型

defaultOperation (common)

要指定要使用的默认操作,如果没有提供操作标头。

 

HazelcastOperation

hazelcastInstance (common)

hazelcast 实例参考,可用于 hazelcast 端点。

 

HazelcastInstance

hazelcastInstanceName (common)

hazelcast 实例参考名称,可用于 hazelcast 端点。如果没有指定实例引用,则 camel 使用 camel-hazelcast 实例中的默认 hazelcast 实例。

 

字符串

reliable (common)

定义端点是否使用可靠的主题结构。

false

布尔值

bridgeErrorHandler (consumer)

允许将消费者桥接到 Camel 路由 Error Handler,这意味着使用者试图获取传入消息或类似信息时出现任何异常,现在将作为一个消息进行处理,并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.Exception 处理程序处理异常,该处理程序将记录在 WARN 或 ERROR 级别,并忽略。

false

布尔值

pollingTimeout (consumer)

在 Poll 模式中定义 Queue consumer 的轮询超时

10000

long

poolSize (consumer)

定义 Queue Consumer Executor 的池大小

1

int

queueConsumerMode (consumer)

定义 Queue Consumer mode: Listen 或 Poll

listen

HazelcastQueueConsumer Mode

exceptionHandler (consumer)

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

 

ExceptionHandler

exchangePattern (consumer)

在使用者创建交换时设置交换模式。

 

ExchangePattern

同步 (高级)

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

false

布尔值

concurrentConsumers (seda)

使用并发消费者从 SEDA 队列进行轮询。

1

int

onErrorDelay (seda)

发生错误后使用者继续轮询前的毫秒。

1000

int

pollTimeout (seda)

从 SEDA 队列消耗的超时。发生超时时,消费者可以检查是否允许继续运行。设置较低值可让使用者在关闭时更快地响应。

1000

int

已翻译 (seda)

如果设置为 true,则消费者以事务模式运行,只有在事务提交完成时,seda 队列中的消息才会被删除。

false

布尔值

transferExchange (seda)

如果设置为 true,则将传输整个交换。如果标头或正文不包含序列化对象,则会跳过它们。

false

布尔值