RabbitMQ:将消息标记为已过时

时间:2011-02-01 20:31:37

标签: ruby-on-rails message rabbitmq

全球问题:在客户完成消息之前,我们是否可以将消息标记为过时?

上下文:

  • 我有一组机器
  • 每台机器在发生变更时发送消息
  • 消息是更改的Rails对象
  • 客户端,在收到此消息时,juste保存

方案

  • 给出3台机器A,B和C
  • 鉴于对象O属于机器A
  • A不在网络中
  • 机器A上的对象O有很多变化

当网络再次启动时,我想取消所有关于O的消息,除了最后一个(生产者方或消费者方)。 所以B和C不会保存O对象的所有状态,而只保存最后一个状态。

问题:

  • 你认为有可能吗?
  • 是否有更好的方法来实现同步(我们不想使用MySQL群集)

谢谢。

1 个答案:

答案 0 :(得分:0)

我们正在做一些事情silimar(在.net但是)如果一个节点离开网络或重新启动然后当它返回时它做的第一件事是要求所有其他节点状态upadte。所有节点都将此发送给所有节点。然后,我们使用时间戳仅对消息进行处理,如果它比最后一个处理的消息更新。似乎可以正常工作,我们需要的是5个工作节点,所有节点都具有相同的配置并同步它们之间的任何内容。