如何构建批流一体数据融合平台的一致性语义保证?(18)

怎么解决?DataPipeline 作为一个产品,在 Kafka Connect 之上,做了控制层,控制层中有像 Manager 这样的逻辑组件,会监控每一个 Topic 消费的 lag,当达到一定阈值时,会对源端进行限速,保证源和目的地尽可能匹配。

第二,资源隔离

Connect Worker 集群无法对 task 进行资源预留,多个 task 并行运行会相互影响。Worker 的 rest 接口是队列式的,单个集群任务过多会导致启停缓慢。

我们正在考虑利用外部的资源调度框架,例如 K8s 进行 worker 节点管理;以及通过路由规则将不同优先级任务运行在不同的 worker 集群上,实现预分配和共享资源池的灵活配置。

第三,Rebalance

在 2.3 版本以前,Kafka Connect 的 task rebalance 采用 stop-the-world 模式,牵一发动全身。在 2.3 版本之后,已经做了非常大优化,改为了具有粘性的 rebalance。所以如果使用 Kafka Connect,强烈推荐一定要升级到 2.3 以上的版本,也就是目前的最新版本。

五、未来演进路线

推荐阅读