RabbitMQ:将消息标记为已过时

发布于 2024-10-15 12:10:29 字数 449 浏览 1 评论 0原文

全局问题:我们能否在客户端使用消息之前将其标记为过时?

上下文:

  • 我有一个机器集群
  • 每台机器在发生变化时都会发送消息
  • 该消息是一个发生变化的 Rails 对象
  • 客户端,当收到此消息时,只需保存它

场景

  • 给定 3 台机器 A、B 和 C
  • 给定对象 O 属于机器A
  • A 不在网络中
  • 机器 A 上的对象 O 发生了很多变化

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

提问:

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

谢谢。

Global question : can we mark a message as obsolete before it consummed by a client ?

Context:

  • I have a cluster of machines
  • Each machine send message when something change
  • The message is a Rails object that changed
  • The client, when getting this message, juste save it

Scenario

  • Given 3 machines A, B and C
  • Given the object O belongs to machine A
  • A is out of network
  • There is lot of changes on object O on machine A

When network is up again, I'd like to cancel all the messages regarding O, except the last one (producer side or consummer side).
So B and C will not save all the states of the O object, but only the last one.

Questions :

  • Do you think it is possible ?
  • Is there a better way to achieve syncronisation (we don't want to use MySQL cluster)

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼眸 2024-10-22 12:10:29

我们正在做一些类似的事情(在.net中),如果一个节点断开网络或重新启动,那么当它回来时,它所做的第一件事就是要求所有其他节点进行状态更新。所有节点将其发送给所有节点。然后,我们使用时间戳仅对消息比最后处理的消息更新的消息进行操作。似乎可以很好地满足我们的需要,即 5 个工作节点都具有相同的配置并在它们之间同步任何更改。

we are doing something silimar (in .net but) if a node goes off network or restarts then when it comes back the first thing it does is ask all the other nodes to a status upadte. All the node send this to all nodes. We then use a time stamp to only act on a message if its more recent than the last last one processed. Appears to work just fine for what we need which is 5 worker nodes all with the same configuration and syncing any chnages between themselves.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文