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

用于处理大量消息的AWS SQS FIFO或AWS DynamoDB

闾丘鸣
2023-03-14

我们有一个处理大量消息的业务场景。关键因素是消息的顺序很重要。

如果我们考虑使用AWS SQS FIFO,它每秒只能处理300条消息。这不适用于我们,因为我们期望每秒超过300条消息,并且批处理也不可能,因为我们只能向SQS发送一条消息。FIFO还可以存储20000条充气信息。这对我们来说也很低。

第二个考虑是使用AWS DynamoDB并使用排序属性(如时间戳)来维护消息的顺序。

由于我们需要大量的数据,使用DynamoDB适合我们的案例吗?SQS和DynamoDB在性能和交易方面有什么主要区别吗?

共有1个答案

左丘兴生
2023-03-14

dynamodb和sqs都“无限”缩放。正如您所指出的,SQS fifo有一些局限性。

如果你可以让sqs为你工作,它可能会更便宜,但只要你有能力支付所需的规模,dynamodb就会工作。无限扩展可能会很昂贵——使用dynamodb比使用sqs更昂贵。

 类似资料:
  • 我有一个队列系统,骆驼只是其中的一小部分。在此队列系统中,对于某些队列,代理在队列已满时返回 FAIL。为了解决这个问题,我查看我得到的 JMS 异常,从消息中我可以看到原因是否是队列已满。 我想在Camel中实现的是,对于满队列的特定情况,我希望重试传递,而对于任何其他JMS异常(或任何其他异常),我希望将其发送到DLQ。 我假设我必须使用onException(JMSException.cla

  • 在FLTK中是通过Fl_Widegt::handle(),虚拟函数来处理系统的消息。我们可以查看Fltk的源代码来分析系统是怎样处理一些系统消息的,如按钮的消息处理 /******************************************************* Fl_Button中处理消息的代码,省略了具体的处理代码 *******************************

  • 我是Netty的新手,需要以自定义方式处理消息。我有以下接口: 现在我从客户端收到一些数据,并希望对其进行处理。我正在实现

  • 流处理和传统消息处理的基本区别是什么?正如人们所说,kafka是流处理的好选择,但本质上,kafka是一个类似于ActivMQ、RabbitMQ等的消息传递框架。 为什么我们通常不说ActiveMQ也适合流处理呢。 消费者消费消息的速度是否决定了它是否是流?

  • 我正在网上阅读苹果的文档 处理本地和远程通知 在我看来,它有相互矛盾的说法。有人能澄清这些困惑吗?现在让我们严格地说一下远程通知(与本地通知相比)。 文档称,如果按下通知上的操作按钮,它将调用application:didfishlaunchingwithoptions并传递通知负载。之后,它会说,如果应用程序在前台运行,它会通过应用程序:DidReceiveMemoteNotify:发送通知。这

  • Storm 通过 Trident 对保证消息处理提供了不同的 level ,包括 best effort(尽力而为),at least once (至少一次)和exactly once(至少一次). 这张页面描述如何保证至少处理一次. What does it mean for a message to be "fully processed"?(一条信息被完全处理是什么意思) 一个 tuple