- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 RDS 多可用区 postgres 数据库(主-备用),我正在研究 Debezium 以将更改流式传输到 Kafka。
我正在阅读故障转移时可能出错的文档:https://debezium.io/documentation/reference/1.1/connectors/postgresql.html#_cluster_failures这看起来是一个非常可怕的场景。
从我通过使用故障转移重新启动所做的一些测试来看,似乎当端点从主端点更改为备用端点时,Debezium 连接器会继续工作并自动在备用端点上创建一个复制槽。但据我了解,除非您可以确保在写入新数据之前创建新主数据库(旧备用数据库)上的复制槽,否则无法保证不会丢失数据。
有人有此设置的经验吗?如果发生故障转移,您如何管理事情?
最佳答案
截至 2022 年,使用 Patroni 在该领域取得了一些新进展在 Percona 中有描述博客:How Patroni Addresses the Problem of the Logical Replication Slot Failover in a PostgreSQL Cluster
上述方法的要点:
- This solution requires PostgreSQL 11 or above because it uses the
pg_replication_slot_advance()
function which is available from PostgreSQL 11 onwards, for advancing the slot.- The downstream connection can use HAProxy so that the connection will be automatically routed to the primary (not covered in this post). No modification to PostgreSQL code or Creation of any extension is required.
- The copying of the slot happens over PostgreSQL protocol (
libpq
) rather than any OS-specific tools/methods. Patroni usesrewind
orsuperuser
credentials. Patroni uses thepg_read_binary_file()
function to read the slot information.- Once the logical slot is created on the replica side, Patroni uses pg_replication_slot_advance() to move the slot forward.
- The permanent slot information will be added to DCS and will be continuously maintained by the primary instance of the Patroni. A New DCS key with the name “status” is introduced and supported across all DCS options (zookeeper, etcd, consul, etc.).
hot_standby_feedback
must be enabled on all standby nodes where the logical replication slot needs to be maintained.- Patroni parameter
postgresql.use_slots
must be enabled to make sure that every standby node uses a slot on the primary node.
关于postgresql - Debezium 与 RDS postgres 和主副本故障转移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69406349/
提供了一个用例: 流处理架构;事件进入 Kafka,然后由带有 MongoDB 接收器的作业进行处理。 数据库名称:myWebsite集合:用户 并且作业接收 users 集合中的 user 记录。
如何删除 debezium 连接器。我正在关注本教程 https://debezium.io/documentation/reference/tutorial.html我看到了注册连接器的方法,但不知
如何删除 debezium 连接器。我正在关注本教程 https://debezium.io/documentation/reference/tutorial.html我看到了注册连接器的方法,但不知
有人可以告诉我将嵌入式 Debezium(不带 kafka)与 osgi bundle 一起使用与将 Debezium 与 kafka 一起使用有什么区别吗?我在互联网上找不到很多关于 Debeziu
我打算使用 debezium用于产生事件到 Kafka我需要强大的交货和订购保证。通过使用 enable.idempotence=true生产者配置中的参数我可以得到这些保证。 我的问题是: 我怎样才
我有一个来自https://hub.docker.com/r/debezium/zookeeper:1.2图像和我的Compose文件的正在运行的Zookeeper实例: version: "3.7"
在我们的应用程序中,我们需要将某个 postgresql 表中的事件发布到 Kafka 中,因此我们决定使用 Debezium,但遇到了以下问题:在初始快照期间,Kafka 中的消息意外出现(从我们的
本文整理了Java中io.debezium.time.ZonedTimestamp类的一些代码示例,展示了ZonedTimestamp类的具体用法。这些代码示例主要来源于Github/Stackove
本文整理了Java中io.debezium.time.ZonedTime类的一些代码示例,展示了ZonedTime类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Mave
我正在尝试使用 Debezium 连接到本地计算机上的 mysql 数据库。 尝试使用以下命令调用kafka:sudo kafka/bin/connect-standalone.shsh kafka/
我安装成功 Postgres Debezium CDC .现在,我能够捕捉到数据库发生的所有变化。但问题是“之前”字段始终为空。所以,如果我插入一条记录 (id = 1, name = Bill)然后
客观的: 需要向现有的 Debezium MySQL 连接器版本 1.1.1.Final 添加一个新表。在使用更新的配置(table.whitelist 中的新表)重新启动连接器后,应将表中的数据填充
我有一些带有 bg_ 和 cp_ 前缀的数据库表,例如“bg_table1”、“bg_table2”和“cp_table1”。还有一些没有任何前缀的其他表,例如 my_table1、user_acti
有人使用Debezium kafka测试集群进行Gradle单元测试吗? 我有一个Vertx gradle项目,想将debezium测试群集与我的verticl kafka客户端测试集成。 我的第一个
我在Postgres中有一个数据库,其中的表“product”与“sales_Channel”连接为1到n。因此,一个产品可以有多个SalesChannel。现在,我想将其传输到ES并保持最新状态,因
我想我可能遗漏了一些配置,但我们正在尝试使用 Debezium 对一个表中的所有行进行快照,该表有大约 800 万条记录,一段时间后它停止了。 连接器配置是: { "connector.clas
我想我可能遗漏了一些配置,但我们正在尝试使用 Debezium 对一个表中的所有行进行快照,该表有大约 800 万条记录,一段时间后它停止了。 连接器配置是: { "connector.clas
我们正在使用 Debezium + PostgreSQL。 请注意,我们有 4 种类型的事件用于创建、读取、更新和删除 - c、r、u 和 d。 我们的应用程序未使用事件的读取类型。实际上,除非我们正
我正在尝试使用 Debezium 和 Kafka 进行 CDC。我在 table.whitelist 属性中注册了一个包含 3 个表的连接器,它工作正常。这是运行连接器的配置。 {"name":"xo
我想将 Debezium 与 kafka connect 结合使用,但我需要在交易结束时完成这项工作。该事务更新了许多表。我可以获得每条消息的 GTID,但我如何知道我何时收到了该交易的所有消息?在我
我是一名优秀的程序员,十分优秀!