去kafka依赖runtime版本梳理
背景
xxx数据同步产品,在客户环境长期运行过程中,发现runtime主要存在以下问题
• 当前架构下,worker集群管理依赖kafka,kafka同时承担任务分配协调和数据缓冲二项职责,当Kafka作为数据缓存不稳定,这二项工作相互干扰导致worker集群不稳定
解决方案
• 为了解决上述的问题,需要重构现有的架构设计,解耦worker集群管理对kafka依赖。具体做法是把kafka中groupcoordinator模块用java语言重写,并独立出来作为一个服务,命名为coordinator
runtime新方案
runtime去kafka依赖,新增了2个组件DB和connector-coorinator
Coordinator:
• 负责管理task任务分配
• 负责worker HA
• 新增jraft模块,用jraft实现coordinator HA
DB:
负责存储元数据信息(task配置、状态、source进度)
依赖kafka的runtime版本创建task核心流程
去kafka依赖的runtime版本创建task核心流程
线上故障