1

我在 Apache Pulsar 消费者中有一个用例。有一个生产者正在向不同的两个集群(集群 A 和集群 B)以及一次具有相同数据的相应主题生成消息(JSON 是生成的消息) .

这里 A 是主集群,B 就像辅助集群。

我正在尝试什么

我正在尝试使用数据,然后将其处理为 CSV 文件,然后每天处理表。应该根据集群的可用性来完成。

问题:

当 Cluster Primary 不可用和/或不向 Primary(A) 轮询消息时,我需要切换到 Secondary(B)。但是如果我从 Secondary(B) 消费,那么我将从 start 获取数据,因为没有确认集群之间共享。因此,我们将遇到数据冗余问题。

假设如果我同时启动并且只存储主要数据和次要数据,则通过等待一定的时间间隔仅考虑主要的故障转移。在这种情况下可能有数据丢失的可能性,因为我正在等待一定的间隔时间。

他们是否有任何建议或想法来解决我的问题,例如打开故障转移并存储到 CVS 和没有数据依赖性和数据丢失的表。

我开发了两个消费者代码来消费数据,一个用于 A,另一个用于 B。

4

1 回答 1

1

你应该看看 Apache Pulsar geo-replication with replicated subscriptions:

https://pulsar.apache.org/docs/en/administration-geo/#replicated-subscriptions

此功能使两个集群之间的订阅保持同步。当集群 A 上的消息被确认时,集群 B 上的确认更新。有一个小的延迟,所以可能会得到重复的消息,但它避免了必须从主题的开头开始阅读的问题。

于 2020-04-20T20:35:23.740 回答