postgresql - Debezium Embedded Engine with AWS Kinesis - PostgreSQL 快照加载和事务元数据流
问题描述
我想将 Debezium Embedded Engine 与 AWS Kinesis 一起使用,以加载 PostgreSQL 数据库的初始快照,然后持续执行 CDC。
我知道,使用 Kafka Connect,我将拥有开箱即用的事务元数据主题,以检查事务边界。
怎么样,但使用 Debezium Embedded Engine 和 AWS Kinesis ( https://debezium.io/blog/2018/08/30/streaming-mysql-data-changes-into-kinesis/ ) 我会有 Kinesis Transaction 元数据流吗这个案例?此外,Debezium Embedded Engine 会执行现有 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 Embedded Engine,那么 Debezium 本身提供了一个选项,它被称为 Dewbezium Server(内部我相信它使用了 Debezium Engine)。它是使用 Kafka 的一个很好的替代方案,它支持 Kinesis、Google PubSub、Apache Pulsar,截至目前用于 CDC。
这里有一篇文章可以参考 https://xyzcoder.github.io/2021/02/19/cdc-using-debezium-server-mysql-kinesis.html
推荐阅读
- c# - 多次评估单个表达式的 mxparser 性能
- c - C中的用户输入数组
- hadoop - hdfs distcp 无法从 hdfs 复制到 s3
- javascript - 如果在外部点击,则关闭下拉菜单 - 没有 ID
- html - SVG 无法正确显示
- bouncycastle - 从 ByteArray 创建 Asn1Object 时出错(在对象之后发现额外数据)
- jmeter - 使用 JSR223 - 0 和空响应而不是实际值的 JMeter 请求
- php - Jquery - 自动刷新页面上的特定 div
- bash - 如何在脚本中使用自动完成分配变量
- c# - 如何使用 JavaScriptSerializer 反序列化 json 字符串