目录
3.2 Gauss100 OLTP 逻辑复制插件Socket通讯
3.2.2 Flink 中实现自定义 SourceFunction
3.3 Gauss100 OLTP 逻辑复制插件同步数据到Kafka
1、PostgreSQL的数据同步原理
PostgreSQL与Flink之间通信的逻辑复制协议是基于PostgreSQL的逻辑复制流复制协议(Streaming Replication Protocol)。这个协议是PostgreSQL内置的一种基于流的复制协议,用于在PostgreSQL服务器之间或者PostgreSQL与外部系统之间传输数据变更事件。
当Flink CDC与PostgreSQL通信时,它利用了逻辑复制流复制协议来建立连接和传输数据变更事件:
Flink CDC作为客户端,向PostgreSQL发起逻辑复制连接请求。
PostgreSQL接受连接请求,并创建一个专用的复制连接。
Flink CDC向PostgreSQL发送复制参数,如复制槽名称、起始LSN位置、解码插件等。
PostgreSQL根据复制参数配置复制槽,并开始将WAL日志发送给解码插件进行解码。
解码插件将解码后的数据变更事件通过逻辑复制流复制协议发送给Flink CDC。
Flink CDC接收数据变更事件,并根据消息格式解析出事件