首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Flink ClickHouse Sink:生产级高可用写入方案|得物技术

Flink ClickHouse Sink:生产级高可用写入方案|得物技术

作者头像
得物技术
发布2026-02-10 11:07:27
发布2026-02-10 11:07:27
1610
举报
概述
针对开源 Flink ClickHouse Sink 生产痛点,提供高可靠生产级写入方案。实现本地表直写、节点动态发现、攒批限流与重试机制,依托 Checkpoint 保障数据语义,搭配生产调优,打造高性能稳定写入链路。
文章被收录于专栏:后端后端

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
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 归档