当前位置: 首页 > 知识库问答 >
问题:

Amazon SQS子队列

萧秋月
2023-03-14

我们现有的服务使用子队列的概念,这样用户就不会接收到不是为他们准备的消息。例如:

/MyQueueName/user1/

/MyQueueName/user2/

SQS似乎不具备创建子队列的能力,也不具备在消息属性上进行筛选的灵活性。我可以允许所有的消息发送到所有的计算机,然后只有在内容相关的情况下才采取行动,但这似乎是浪费,特别是考虑到我们正在谈论的区域2万+子队列目前。

如何在SQS上最好地实现这一点?当有消息要从源传递或用户订阅时,我可以通过编程方式在QueuenameUsername的表单中创建队列,然后在html" target="_blank">用户取消订阅时删除队列。然而,这似乎不是最好的方式来做事情;创建数千个单独的队列,并且需要一些代码来管理队列的创建,更具体地说,以正确的间隔删除队列。

任何洞察力都值得赞赏。

谢谢,菲尔

共有1个答案

李胡媚
2023-03-14

我认为SQS对此行不通。是的,您可以创建队列,但要记住的一点是,只有一个使用者会得到一条消息(即,当您将消息发送到“主题”队列时,并不是所有监听队列并获取消息的人都会得到消息)。

一个明确的问题是:您处理消息的顺序重要吗?

如果您想在AWS-land中实现这一点,我将尝试使用SNS和HTTPSendpoint。您可以动态订阅和取消订阅您创建的SNSendpoint,但缺点是endpoint必须在公共Internet上。每次有人发布消息到SNS主题,所有订阅者都将得到它。

 类似资料:
  • 简介 Lumen 的队列服务给不同的后端队列提供统一的 API。队列允许你延迟处理耗时的任务,例如在远程服务器上执行任务,直到您的应用程序可以快速的处理 Web 应用程序的请求。 就像该框架的许多其他部分一样,Lumen 的队列服务跟 Laravel 的队列服务功能相同。因此,如果要了解更多关于 Lumen 的队列,则可以参阅 full Laravel queue documentation. 配

  • 简介 {tip} 现在,Laravel 为你的 Redis 队列提供了 Horizon,一个拥有漂亮的仪表盘的配置系统。 查看完整的 Horizon 文档 Horizon documentation 了解更多信息。 Laravel 队列为不同的队列后台服务提供了统一的 API,比如 Beanstalk, Amazon SQS, Redis, 甚至是关系型数据库。队列可以使你延迟处理一些耗时的任务,

  • 队列是先进先出(FIFO, First-In-First-Out)的线性表,只允许在后端(rear)进行插入操作,在前端(front)进行删除操作。

  • 问题内容: 如何同时在多个对象上“选择” ? Golang的频道具有所需的功能: 其中第一个要解除阻塞的通道执行相应的块。如何在Python中实现? 更新0 根据tux21b答案中给出的链接,所需的队列类型具有以下属性: 多生产者/多消费者队列(MPMC) 提供每个生产者FIFO / LIFO 当队列为空/完整的消费者/生产者被阻止时 此外,渠道可能会被阻塞,生产者将阻塞,直到消费者取回该物品为止

  • 我当前将我的rabbit listener注释设置为: @RabbitListener(queues=“my queue”) 是否无法从我的yaml文件中提取队列名称。我想这样做的原因是,我可以将队列更改为集成测试的测试队列,只需更改yaml文件中的队列名称即可。看来注释必须接受常量字符串,有什么办法吗?谢谢

  • 主要内容:Queue 类中的属性,Queue 类中的方法在 C# 中,队列(Queue 类)与 堆栈类似,它代表了一个先进先出的对象集合,当您需要对项目进行先进先出访问时,则可以使用队列。向队列中添加元素称为入队(enqueue),从堆栈中移除元素称为出队(deque)。 Queue 类中的属性 下表列出了 Queue 类的一些常用的属性: 属性 描述 Count 获取队列中包含的元素个数 IsSynchronized 判断是否同步对队列的访问(线程安