第 155 章 Ignite Compute 组件
作为 Camel 2.17 版提供
Ignite Compute 端点是一个 camel-ignite 端点,它允许您传递一个 IgniteCallable、IgniteCallable、IgniteRunnable、IgniteClosure 或它们的集合来在集群中运行 计算操作。
此端点仅支持制作者。
端点 URI 的主机部分是符号链接端点 ID,它不用于任何目的。
端点试图运行作为计算作业在 IN 消息正文中传递的对象。根据执行类型,它需要不同的有效负载类型。
155.1. 选项
Ignite Compute 组件支持下面列出的 4 个选项。
名称 | 描述 | 默认 | 类型 |
---|---|---|---|
ignite (producer) | 设置 Ignite 实例。 | Ignite | |
configurationResource (producer) | 设置从中加载配置的资源。它可以是: URI、String (URI)或 InputStream。 | 对象 | |
igniteConfiguration (producer) | 允许用户设置程序化 IgniteConfiguration。 | IgniteConfiguration | |
resolveProperty Placeholders (advanced) | 启动时,组件是否应自行解析属性占位符。只有 String 类型的属性才能使用属性占位符。 | true | 布尔值 |
Ignite Compute 端点使用 URI 语法配置:
ignite-compute:endpointId
使用以下路径和查询参数:
155.1.1. 路径名(1 参数):
名称 | 描述 | 默认 | 类型 |
---|---|---|---|
endpointId | 必需 端点 ID (不使用)。 | 字符串 |
155.1.2. 查询参数(8 参数):
名称 | 描述 | 默认 | 类型 |
---|---|---|---|
clusterGroupExpression (producer) | 一个表达式,用于返回 IgniteCompute 实例的 Cluster Group。 | ClusterGroupExpression | |
computeName (producer) | 计算作业的名称,将通过链接 IgniteComputewithName (字符串)进行设置。 | 字符串 | |
executionType (producer) | 执行所需的 计算操作。可能的值有:CALL, BROADCAST, APPLY, EXECUTE, RUN, AFFINITY_CALL, AFFINITY_RUN.组件需要不同的有效负载类型,具体取决于操作。 | IgniteComputeExecution Type | |
propagateIncomingBodyIfNo ReturnValue (producer) | 如果底层 Ignite 操作的返回类型为 void,则设置是否传播传入的正文。 | true | 布尔值 |
taskName (producer) | 任务名称,仅适用于使用链接 IgniteComputeExecutionTypeEXECUTE 执行类型。 | 字符串 | |
timeoutMillis (producer) | 触发的作业的超时间隔(以毫秒为单位),将通过链接 IgniteComputewithTimeout (long)设置。 | Long | |
treatCollectionsAsCache Objects (producer) | 设置是否将集合视为缓存对象,还是作为项目集合来插入/更新/计算等。 | false | 布尔值 |
同步 (高级) | 设置同步处理是否应当严格使用,还是允许 Camel 使用异步处理(如果受支持)。 | false | 布尔值 |
155.1.3. 预期的有效负载类型
每个操作都需要指定类型:
操作 | 预期有效负载 |
---|---|
CALL | 可识别或一个可识别的 IgniteCallable 集合。 |
BROADCAST | IgniteCallable, IgniteRunnable, IgniteClosure。 |
APPLY | IgniteClosure. |
执行 | ComputeTask, Class<? 扩展 ComputeTask> 或代表参数的对象(如果 taskName 选项不为空)。 |
运行 | 系列 IgniteRunnables 或单个 IgniteRunnable。 |
AFFINITY_CALL | IgniteCallable. |
AFFINITY_RUN | IgniteRunnable. |
155.1.4. 使用的标头
此端点使用以下标头:
标头名称 | 常数 | 预期类型 | 描述 |
---|---|---|---|
CamelIgniteComputeExecutionType | IgniteConstants.IGNITE_COMPUTE_EXECUTION_TYPE | IgniteComputeExecutionType enum | 允许您动态更改计算操作以进行执行。 |
CamelIgniteComputeParameters | IgniteConstants.IGNITE_COMPUTE_PARAMS | 任何对象或集合对象。 | 适用于 APPLY 的参数、BROADCAST 和 EXECUTE 操作。 |
CamelIgniteComputeReducer | IgniteConstants.IGNITE_COMPUTE_REDUCER | IgniteReducer | 为 APPLY 和 CALL 操作减少。 |
CamelIgniteComputeAffinityCacheName | IgniteConstants.IGNITE_COMPUTE_AFFINITY_CACHE_NAME | 字符串 | AFFINITY_CALL 和 AFFINITY_RUN 操作的关联性缓存名称。 |
CamelIgniteComputeAffinityKey | IgniteConstants.IGNITE_COMPUTE_AFFINITY_KEY | 对象 | AFFINITY_CALL 和 AFFINITY_RUN 操作的关联性密钥。 |