将一个队列实例与多个Redis实例同步
场景: 我们有多个地理上分布的节点,希望在这些节点上有队列来收集该位置的消息。然后我们要将收集到的数据从每个节点的每个队列发送到中心位置的相应队列。在中心节点中,我们将取出队列中收集的数据(来自其他节点),对其进行处理并持久存储 限制条件:将一个队列实例与多个Redis实例同步,redis,message-queue,rabbitmq,amqp,zeromq,Redis,Message Queue,Rabbitmq,Amqp,Zeromq,场景: 我们有多个地理上分布的节点,希望在这些节点上有队列来收集该位置的消息。然后我们要将收集到的数据从每个节点的每个队列发送到中心位置的相应队列。在中心节点中,我们将取出队列中收集的数据(来自其他节点),对其进行处理并持久存储 限制条件: 数据对我们来说非常重要。因此,我们必须确保在任何情况下都不会丢失数据 因此,我们需要在每个节点上使用持久队列,这样即使节点因某种随机原因停机,当我们打开它时,我们也可以安全地将收集到的数据发送到中心节点进行处理 类似地,如果中心节点关闭,数据必须保留在所有
- 数据对我们来说非常重要。因此,我们必须确保在任何情况下都不会丢失数据
- 因此,我们需要在每个节点上使用持久队列,这样即使节点因某种随机原因停机,当我们打开它时,我们也可以安全地将收集到的数据发送到中心节点进行处理
- 类似地,如果中心节点关闭,数据必须保留在所有其他节点上,以便当中心节点出现时,我们可以将所有数据发送到中心节点进行处理李>
- 此外,中央节点上的数据不得重复或再次存储。也就是说,在其中一个节点上收集的数据只应在中心节点上存储一次
- 我们正在收集的数据对我们来说非常重要,向中心节点交付数据的顺序不是问题
- 这些消息队列或任何其他数据存储是否提供了可以解决问题的功能?如果是的话,怎么办
- 如果不是,那么我们的解决方案是否足够好
- 有人能提出更好的解决方案吗
- 有没有更好的办法
- 使其故障安全的最佳方法是什么
- 我们正在收集的数据对我们来说非常重要,向中心节点交付数据的顺序不是问题
如果您还有其他问题,请通过电子邮件与邮件列表rabbitmq讨论。为正确的工作使用正确的工具:当您需要确认、持久性和(高级)消息路由时,rabbitmq绝对是正确的工具。“此外,中央节点上的数据不得重复或再次存储。也就是说,在一个节点上收集的数据应该只存储在一个节点上。“我如何保证这一点?考虑到ACK没有因网络问题而被交付(在我们的场景中))。在这种情况下会发生什么?队列仍然不知道工作完成的状态。在这种情况下,消息会被锁定吗?还是另一个工作人员拾取了它?如果另一个工作人员拾取了它,那么我们将对相同的数据进行两次处理,对吗?