得物技术
Flink ClickHouse Sink:生产级高可用写入方案|得物技术
原创
关注作者
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
得物技术
社区首页
>
专栏
>
Flink ClickHouse Sink:生产级高可用写入方案|得物技术
Flink ClickHouse Sink:生产级高可用写入方案|得物技术
得物技术
关注
发布于 2026-02-10 11:07:27
发布于 2026-02-10 11:07:27
161
0
举报
概述
针对开源 Flink ClickHouse Sink 生产痛点,提供高可靠生产级写入方案。实现本地表直写、节点动态发现、攒批限流与重试机制,依托 Checkpoint 保障数据语义,搭配生产调优,打造高性能稳定写入链路。
文章被收录于专栏:
后端
后端
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
第四期热点征文-C#
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
第四期热点征文-C#
##后端
##中间件
##得物
##得物技术
评论
登录
后参与评论
0 条评论
热度
最新
推荐阅读
目录
一、背景与痛点
业务场景
开源 Flink ClickHouse Sink 的痛点
痛点一:缺乏基于数据量的攒批机制
痛点二:无法支持动态表结构
痛点三:分布式表写入性能问题
生产级方案的核心改进
改进一:基于数据量的攒批机制
改进二:动态表结构与分片策略
改进三:本地表写入 + 动态节点发现
技术方案概览
二、核心架构设计
架构图
核心组件
核心流程
三、本地表 vs 分布式表写入
ClickHouse 表结构说明
HikariCP 连接池配置
ClickHouseLocalWriter:动态节点发现
集群节点动态发现(ClusterIpsUtils)
负载均衡优化
四、支持分表策略
分片策略抽象
日志分片实现
按表(应用)维度的缓冲区
五、攒批与内存控制
双触发机制
批次大小计算
带随机抖动的超时
配置示例
六、写入限流与流量控制
有界队列设计
线程池并发控制
WriterTask 消费逻辑
配置参数
七、重试机制与超时控制
Future 超时控制
重试逻辑
重试控制逻辑
保证一致性
简单可靠
性能可接受
避开故障节点
异常节点剔除
重试流程图
八、异常处理模式
两种 Sink 模式
UnexceptionableSink(忽略异常 - At-Most-Once)
ExceptionsThrowableSink(抛出异常 - At-Least-Once)
Future 清理策略与并发控制
定时检查器
并发控制机制
九、Checkpoint 语义保证
为什么 Checkpoint 时必须 Flush?
不 Flush 的后果
正确做法
Flush 实现与并发协调
等待所有 Future 完成
三种 Flush 触发方式对比
Checkpoint 参数配置
语义保证
十、最佳实践与调优
生产配置
性能调优
故障排查
十一、总结
技术亮点
Checkpoint 语义
生产建议
往期回顾
文 /虚白
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档
0
0
0
推荐