平台与工具

提交后回调

师成师成· 更新于 2026-09-29· 阅读 8 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Apache Hudi 提供了针对写入提交发布回调通知的能力。如果你需要一个事件通知流,以便在 Hudi 写入提交之后触发其他服务的操作,这一点将非常有用。你可以将写入提交回调通知推送到 HTTP 端点或 Kafka 服务器。

HTTP 端点

你可以将提交通知推送到某个 HTTP URL,并可通过扩展下文定义的回调类来指定自定义值。

配置项说明是否必填默认值
TURN_CALLBACK_ON开启/关闭提交回调可选false(回调已关闭)
CALLBACK_HTTP_URL随回调消息一起发送的回调主机地址必填不适用
CALLBACK_HTTP_TIMEOUT_IN_SECONDS回调超时时间(秒)可选3
CALLBACK_CLASS_NAME回调类的完整路径,必须是 HoodieWriteCommitCallback 类的子类,默认为 org.apache.hudi.callback.impl.HoodieWriteCommitHttpCallback可选org.apache.hudi.callback.impl.HoodieWriteCommitHttpCallback
CALLBACK_HTTP_API_KEY_VALUEHTTP 回调 API 密钥可选hudi_write_commit_http_callback
CALLBACK_HTTP_CUSTOM_HEADERSHTTP 回调自定义请求头。格式:HeaderName1:HeaderValue1;HeaderName2:HeaderValue2可选不适用

Kafka 端点

你可以将提交通知推送到 Kafka 主题,以便其他实时系统使用。

配置项说明是否必需默认值
TOPIC用于发布时间线活动的 Kafka 主题名称。必需N/A
PARTITION如果需要严格保证顺序,可以将所有变更序列化到单个 Kafka 分区中。默认情况下,Kafka 消息以表名作为键,这只能保证表级别的顺序,而不能保证全局顺序(或者当新增分区时也无法保证)必需N/A
RETRIES生产消息的重试次数可选3
ACKSKafka 的 acks 级别,默认为 all,以确保强持久性可选all
BOOTSTRAP_SERVERSKafka 集群的引导服务器地址,用于发布提交元数据必需N/A

Pulsar 端点

你可以将提交通知推送到 Pulsar 主题,以便其他实时系统使用。

配置项描述是否必需默认值
hoodie.write.commit.callback.pulsar.broker.service.url用于发布提交元数据的 Pulsar 集群服务地址。必需无
hoodie.write.commit.callback.pulsar.topic用于发布时间线活动的 Pulsar 主题名称。必需无
hoodie.write.commit.callback.pulsar.producer.route-mode分区主题上生产者的消息路由逻辑。可选RoundRobinPartition
hoodie.write.commit.callback.pulsar.producer.pending-queue-size保存待发送消息的队列的最大容量。可选1000
hoodie.write.commit.callback.pulsar.producer.pending-total-size跨分区的待发送消息的最大数量。必需50000
hoodie.write.commit.callback.pulsar.producer.block-if-queue-full队列已满时,方法将阻塞而不是抛出异常。可选true
hoodie.write.commit.callback.pulsar.producer.send-timeout每次向 Pulsar 发送消息的超时时间。可选30s
hoodie.write.commit.callback.pulsar.operation-timeout等待操作完成的时长。可选30s
hoodie.write.commit.callback.pulsar.connection-timeout等待与 broker 建立连接的时长。可选10s
hoodie.write.commit.callback.pulsar.request-timeout等待请求完成的时长。可选60s
hoodie.write.commit.callback.pulsar.keepalive-interval每个客户端与 broker 连接的保活间隔时长。可选30s

自带实现

你可以扩展 HoodieWriteCommitCallback 类,以自定义的方式异步处理成功写入后的回调。请使用此公开 API:

https://github.com/apache/hudi/blob/master/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/callback/HoodieWriteCommitCallback.java

评论

登录后参与评论

正在加载评论…