我正在研究将现有的消息队列(Mosquitto MQTT)移动到云(Amazon SQS)的可行性。亚马逊SQS子队列
我们现有的服务使用子队列的概念,以便用户不会收到不适合他们的消息。例如:
/MyQueueName/USER1/
/MyQueueName /用户2/
/MyQueueName /用户3/
等
的用户计算机上运行的应用程序预订了与他们自己的用户ID相关的子队列。然后他们只收到与他们有关的消息。
SQS似乎没有创建子队列的能力,也没有过滤消息属性的灵活性。我可以允许所有邮件发送到所有计算机,然后只在内容相关的情况下才采取措施,但这看起来很浪费,特别是考虑到我们目前正在讨论20,000个以上的子队列。
如何在SQS上实现最佳效果? 我可以以编程方式在QueuenameUsername上的表单中创建队列,当有消息从源传递或用户订阅时,然后在用户取消订阅时删除队列。但是,这似乎并不是做事的最佳方式;创建数千个独立的队列,并且需要一些代码来管理创建,更具体地说,以正确的间隔删除队列。
任何洞察赞赏。
感谢, 菲尔
订单不是太重要(我可以在客户端处理订单),但时间更重要。这些消息需要在5秒内传递给任何订阅的客户端 - 否则在此之后它们包含的数据价值不大。 另外我需要确保只有正确的用户抓住信息。如果客户端从队列中获取与用户名无关的消息,则会阻止正确的用户使用该消息。 与SNS有趣的想法。我想知道C#.net是否可以订阅SNS端点,我认为它只是用于移动设备? – PhilH
nope。 SNS可以做HTTP/SQS/SMS端点等。你的客户是否在开放的互联网上?如果是,那就是我会走的路。只要您有编写最小HTTP服务器的支持,C#(以及任何其他语言)都可以订阅端点并使用通知。 (SNS基本上发布到您的网址) – Mircea