如何解决带有AWS Kinesis的Debezium嵌入式引擎-PostgreSQL快照加载和事务元数据流
我想将Debezium嵌入式引擎与AWS Kinesis一起使用,以便加载Postgresql数据库的初始快照,然后连续执行CDC。
我知道,使用Kafka Connect,我可以开箱即用的交易元数据主题,以便检查交易边界。
使用Debezium嵌入式引擎和AWS Kinesis(https://debezium.io/blog/2018/08/30/streaming-mysql-data-changes-into-kinesis/)情况相同吗?在这种情况下,我将拥有Kinesis Transaction元数据流吗?另外,Debezium嵌入式引擎会为现有Postgresql数据执行初始快照吗?
已更新
我用Postgresql实现了测试EmbeddedEngine应用程序:
engine = EmbeddedEngine.create()
.using(config)
.using(this.getClass().getClassLoader())
.using(Clock.SYstem)
.notifying(this::sendRecord)
.build();
现在,在我的'sendRecord(SourceRecord record)'方法中,我可以看到参与事务的每个数据库表的正确主题,例如:
private void sendRecord(SourceRecord record) {
String streamName = streamNameMapper(record.topic());
System.out.println("streamName: " + streamName);
结果如下:
streamName: kinesis.public.user_states
streamName: kinesis.public.tasks
在同一txId=1510
但是我仍然看不到交易元数据流。 如何使用Debezium EmbeddedEngine正确获取事务元数据流?
解决方法
如果您不具体使用 Debezium 嵌入式引擎,那么 Debezium 本身提供了一个选项,它被称为 Dewbezium 服务器(在内部我相信它使用了 Debezium 引擎)。 它是使用 Kafka 的一个很好的替代方案,它目前支持 Kinesis、Google PubSub、Apache Pulsar 用于 CDC。
这里有一篇文章可以参考 https://xyzcoder.github.io/2021/02/19/cdc-using-debezium-server-mysql-kinesis.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。