平台与工具
提交后回调
登录后可跨设备保存划线和私人笔记登录
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_VALUE | HTTP 回调 API 密钥 | 可选 | hudi_write_commit_http_callback |
| CALLBACK_HTTP_CUSTOM_HEADERS | HTTP 回调自定义请求头。格式:HeaderName1:HeaderValue1;HeaderName2:HeaderValue2 | 可选 | 不适用 |
Kafka 端点
你可以将提交通知推送到 Kafka 主题,以便其他实时系统使用。
| 配置项 | 说明 | 是否必需 | 默认值 |
|---|---|---|---|
| TOPIC | 用于发布时间线活动的 Kafka 主题名称。 | 必需 | N/A |
| PARTITION | 如果需要严格保证顺序,可以将所有变更序列化到单个 Kafka 分区中。默认情况下,Kafka 消息以表名作为键,这只能保证表级别的顺序,而不能保证全局顺序(或者当新增分区时也无法保证) | 必需 | N/A |
| RETRIES | 生产消息的重试次数 | 可选 | 3 |
| ACKS | Kafka 的 acks 级别,默认为 all,以确保强持久性 | 可选 | all |
| BOOTSTRAP_SERVERS | Kafka 集群的引导服务器地址,用于发布提交元数据 | 必需 | 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:
评论
登录后参与评论
正在加载评论…
KnowForge