seatunnel实时同步实践之------pg到rocketmq

219 阅读1分钟

背景:我司业务系统主要使用pg数据库,需求需要实时同步pg到rocketmq中间件。 实现版本1: 通过flink-cdc+streaming api 将pg库中表实时同步到rocketmq 的topic中 实现版本2: 通过wal2json+kafka+flink-sql 写sql的方式将pg库中表实时通过到mq中 实现版本3: 通过wal2json+kafka+seatunnel 配置化文件的方式将pg表实时同步到mq中。

seatunnel版本2.3.3 三个版本优缺点如下: 版本1: 缺点:写代码开发量,上线周期较长,且排查问题不方便。flink-jar 以Perjob方式运行在yarn上,资源占用 优点:同一个库中多个表可以写在一个包中。

版本2: 缺点:一张表一个flink-sql任务,表太多的情况下不容易管理 优点:开发简单

版本3: 缺点:目前不支持多个表在一个配置文件中进行同步 优点:配置化开发

待优化点: seatunnel目前是自己实现了一个解析json的函数,同时测试发现部分函数没有生效,不过自定义udf函数比较简单方便。 针对多个表的同步,需要优化到同一个任务中。 针对zeta模式的同步,需要进一步观察每一个实时任务占用的资源。目前是可以提交到yarn上。