Red Hat Camel K is no longer supported.
As of June 30, 2025, Red Hat build of Camel K has reached End of Life. The suggested replacements is Red Hat build of Apache Camel. For details about moving, see the Camel K to Camel Quarkus migration guide.1.4. 处理连接中的错误
要指定在发送或接收事件数据时运行集成遇到失败的集成,您可以选择在 Kamelet Binding 中添加以下错误处理策略之一:
- 没有错误处理程序 - 忽略集成中的所有失败。
- 日志错误处理程序 - 将日志消息发送到标准输出。
- 死信频道错误处理程序 - 将失败的事件重定向到另一个组件,如第三方 URI、队列或其他 Kamelet,它们可以使用失败的事件执行某些逻辑。还支持尝试重新设计消息交换的次数,然后再将其发送到死信端点。
- bean 错误处理程序 - 指定使用自定义 bean 来处理错误。
- ref error handler - 指定使用 bean 来处理错误。bean 必须在运行时在 Camel registry 中提供。
1.4.1. 在 Kamelet Binding 中添加错误处理器策略 复制链接链接已复制到粘贴板!
要在源和接收器连接之间发送或接收事件数据时处理错误,请在 Kamelet Binding 中添加错误处理器策略。
先决条件
- 您知道您要使用的错误处理程序策略类型。
-
您有一个现有的
KameletBindingYAML 文件。
流程
在 Kamelet Binding 中实施错误处理:
-
在编辑器中打开
KameletBindingYAML 文件。 在
sink定义后,在spec部分添加一个错误处理器部分:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,在
coffee-to-logKamelet Binding 中,通过添加日志错误处理程序来指定将错误发送到日志文件的最大次数:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存您的文件。
1.4.2. 错误处理程序 复制链接链接已复制到粘贴板!
1.4.2.1. 没有错误处理程序 复制链接链接已复制到粘贴板!
如果要忽略集成中的任何失败,您可以在 Kamelet Binding 中包含 errorHandler 部分,或者将其设置为 none,如下例所示:
1.4.2.2. 日志错误处理程序 复制链接链接已复制到粘贴板!
处理任何失败的默认行为是将日志消息发送到标准输出。另外,您可以使用日志错误处理器来指定其他行为,如重新传送或延迟策略,如下例所示:
1.4.2.3. 死信频道错误处理程序 复制链接链接已复制到粘贴板!
Dead Letter Channel 允许您将任何失败的事件重定向到任何其他组件(如第三方 URI、队列或其他 Kamelet),它可以定义如何处理失败的事件,如下例所示:
-
对于 端点,您可以使用
ref或uri。根据kind,apiVersion和name的值的 Camel K operator interpretsref。您可以使用任何 Kamelet、Kafka Topic 频道或 Knative 目的地。 -
属于端点的属性(本例中为一个名为
error-handler的 Kamelet)。 - 属于 dead-letter-channel 错误处理程序类型 的参数。
1.4.2.4. Bean 错误处理程序 复制链接链接已复制到粘贴板!
通过 Bean 错误处理程序,您可以通过提供处理错误的自定义 bean 来扩展 Error Handler 的功能。对于 类型,指定 ErrorHandlerBuilder 的完全限定名称。对于 属性,请配置您在 类型 中指定的 ErrorHandlerBuilder 预期的属性。
1.4.2.5. ref error handler 复制链接链接已复制到粘贴板!
使用 Ref 错误处理程序,您可以使用您希望在运行时在 Camel registry 中提供的任何 bean。在以下示例中,my-custom-builder 是要在运行时查看的 bean 的名称。
另请参阅: