如何将数据从两个隔离的风暴群集同步发送到单个数据源

时间:2017-01-26 04:03:03

标签: synchronization apache-storm distributed-computing

我有两个隔离的风暴群集运行相同的拓扑结构(出于故障转移的原因)。我现在需要在任何给定时间仅从1个设置向数据源发送数据(这样我就不会在接收器中复制数据)。优选地,它应该是无缝的,但我很好,切换之间的停机时间最短。

我可以用什么同步机制来实现这个目标?

1 个答案:

答案 0 :(得分:0)

这是一个有趣的问题。

如果你只加倍风暴群,这很复杂。由于许多随机因素导致计算速度不同,因此协调起来非常困难。

我认为更实际的方法是将接收器(数据库)加倍。因为你出于故障转移的原因这样做,所以使用双接收器来跳过复杂的问题是公平的。接下来的问题是应用程序应从哪个数据库中读取。这取决于您的方案,您的应用程序可能需要添加一些功能。

假设我们有一个只报告卖家GMV的屏幕应用程序。我们有一个指向其中一个数据库的DNS路由器。如果由数据偏差导致失败或计算缓慢,您只需要重定向指向另一个数据库的DNS记录。这很容易。这也可能导致一些小问题。由于不同的数据消耗速度,GMV可能会突然下降(因为另一个集群没有计算出与其他集群一样多的数据)。如果屏幕显示为公共,这是一个大问题。因此,您的应用程序需要检测保持状态,直到GMV大于之前(不要让数字下降)。

enter image description here