首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >狂犬病是否有交易的选择?

狂犬病是否有交易的选择?
EN

Stack Overflow用户
提问于 2019-09-02 05:22:45
回答 1查看 796关注 0票数 1

可以在队列上设置TTL,因此如果不使用TTL,它们将在一段时间后过期。是否有类似的交换选择?

我正在尝试构建一个社交应用程序,每个交换都代表一个用户。每当有人想要向该用户发送消息时,他都会将该消息发送给用户交换。如果用户数量变大,像2000万用户一样,系统中就会有2000万个交换机。恐怕很多交易都会降低系统的质量。相反,我只想保持在线用户的交流。顺便说一句,只有当用户在线时,这些消息才是有价值的,而且我不想存储消息以供以后传递。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-02 07:14:50

有一个单独的交换每一个用户的想法将是过分的。尝试另一种方法。

  • 使用单个direct交换。
  • 当客户端联机时,它会创建一个新的排他性、自动删除队列并从中消耗。
  • 客户端还使用用户名称作为路由密钥将单个交换绑定到其队列。
  • 生产者以用户名作为消息的路由键,将消息发布到单个exhange。

这将自动

  • 只为在线用户保留队列,并且
  • 丢弃脱机用户的邮件。

编辑:如果用户能够使用多个客户端,使用上述方法是可能的。

  • 每个客户端都会创建一个新的exclusi自动删除队列,并按上面的方式使用。
  • 如前所述,它将单个交换绑定到此队列。

请注意,可以使用相同的路由键从交换中进行多个绑定。每个客户端都有自己的队列和自己的绑定,即使此绑定上的路由密钥与另一个由不同客户端创建的绑定上的路由密钥相同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57751776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档