gpt4 book ai didi

amazon-web-services - 为 AWS 中的多个消费者选择消息队列方法

转载 作者:可可西里 更新时间:2023-11-01 11:20:19 24 4
gpt4 key购买 nike

请帮助为以下用例选择 MQ 应用程序/系统/方法:

检查特定用户的传入消息 -> 阅读消息(如果可用) -> 从队列中删除,理想情况下,留在 AWS 中。

上下文:

  • 社交网络应用,用户接收消息,即我需要通过收件人 ID 识别收到的邮件。
  • 该应用每 30 秒对新消息进行一次长轮询。
  • 邮件大小为 <1Kb。
  • 根据目前的估计,我每月总共需要检查 1 亿多条消息(但是,消息少得多,这些只是检查)。
  • 虽然用户确认消息选择“确定”或“忽略”,但不确定是否需要来自 MQ 系统的 ACK 支持。

我在 AWS。最初想到 SQS,但我读得越多,它看起来就越不适合 - 无法以按收件人过滤的方式设置消息收件人 ID 等,但也许我错了。我还考虑过的选项之一是只使用 DynamoDB 的“消息”表,分区键是 userId,排序键是 messageId,这样我就可以轻松地由用户查询,但是会担心成本。

如果可能的话,我更愿意留在 AWS 或至少使用像 SQS 这样的 SAAS,因为作为一个单人创业公司,我真的想避免支持自托管系统的麻烦。

谢谢!

最佳答案

你在这两个方面都是对的:

  • 由于您指出的限制,SQS 将无法工作。
  • DynamoDB 可以,但成本很高。

我可以提出以下建议:

  • 创建一个 Redis 集群,可能在 Amazon ElastiCache 上.
  • 在里面,做一个List每个用户。
  • 每当收到新消息时,将其附加到相关用户列表中。
  • 要传递消息,只需从用户列表中读取即可。此外,如果需要,刷新队列。

我的建议与 Twitter 管理每个用户的新闻源和主页源的方式非常相似。

应该也很便宜。

关于amazon-web-services - 为 AWS 中的多个消费者选择消息队列方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38424028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com