第 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
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 操作的关联性密钥。 |