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

Amazon Kinesis中的读写事务

康赞
2023-03-14

我不熟悉动态信息,所以这似乎是一个非常基本的问题,但我还没有找到一个明确的答案来解释动态信息流中读写事务之间的实际区别。

Amazon Kinesis Limits的相关部分:

  • GetShardIterator可以为每个打开的碎片每秒提供多达5个事务
  • GetRecords可以检索10 MB的数据
  • 每个碎片每秒最多可支持5个事务进行读取,最大总数据读取速率为每秒2 MB
  • 每个碎片每秒最多可支持1024条记录进行写入,最大总数据写入速率为每秒1 MB(包括分区键)。此写入限制适用于PutRecord和PutRecords等操作

它明确提到每个碎片每秒5次读取和1024次写入。为什么阅读要比写作贵得多,或者这里有一个关键的动作概念我还没有掌握?

共有2个答案

侯焱
2023-03-14

常见的用例是,多个制作人将其事件写入动觉。例如,多个web服务器、多个浏览器或多个移动设备。每个生产者可以编写多个事件,一个接一个或以多达500个事件为一批。

另一方面,事件的消费者是少数进程。简单的用例是“慢速”阅读器正在从驱动流中读取一批事件(例如,每10秒10,000个事件),并将它们作为单个日志文件写入S3。

在这种情况下,您正在编写数千个事件(大多是一个接一个),但您每秒只读取一次(或在上例中为10秒)在这段时间内添加到流中的所有事件。因此,写入与读取的比率为1024:1。

在大多数情况下,来自动觉流的消费者数量很少,而不是一个阅读器。例如,在上面的“慢速”读取器之上,您可以有一个“快速”读取器,它正在扫描传入事件并过滤它们或汇总它们的值,以便能够实时做出反应。这种快速读取器可以识别欺诈交易并阻止它们,或者为操作仪表板计算实时计数器。

尽管如此,相对于写操作的数量而言,读取的数量仍然很小。在这种情况下,“快速”读取器将每1/4秒读取一次,以允许对事件进行近实时反应。因此,写入与读取的比率将为1024:5(=1 4)

臧弘和
2023-03-14

Kinesis使您能够将粒度数据摄取到流中,并读取记录批次来处理信息。因此,您每秒可以读取的兆字节量比您每个分片获得的读取事务数重要得多。例如,您可能有一个繁忙的网站,每分钟产生数千次浏览,以及一个EMR集群来处理您的访问日志。在这种情况下,您将拥有比读取事件多得多的写入事件。这同样适用于点击流、金融交易、社交媒体提要、IT日志和位置跟踪事件等。

 类似资料:
  • 我在使用Flutter查询Firestore数据库时收到了这个错误。 E/Flutter(17558):[错误:Flutter/lib/ui/ui_dart_state.cc(157)]未处理的异常:PlatformException(执行事务时出错,必须写入事务中读取的每个文档。,空)

  • 基本上,以原子方式,我需要执行以下操作: 从数据库读取, 根据,将存储到数据库中。 都是1。和2。应该是单个原子事务的一部分。 有没有一个简单的方法可以做到这一点?

  • 问题内容: 我一直在研究只读数据库和读写数据库事务的性能。MySQL服务器通过缓慢的VPN链接处于远程状态,因此我很容易看到事务类型之间的差异。这是与连接池有关的,我知道它是基于比较第一个和第二个JDBC调用而工作的。 当我将Spring AOP配置为在我的DAO调用上使用只读事务时,与读写相比,调用的 速度要慢 30-40%: 与: 看一下tcpdump,似乎只读事务正在与MySQL进行来回通信

  • 大家好,已经有人问过类似的问题,但我想我们有点不同的问题: 我们使用Cassandra 2.2.6一个节点安装(并将升级到最新的)。现在我们有可怕的查询时间,有时会写超时。 为了进行比较,有一个不同的表包含大约10万条记录,其构造与上述非常相似 区别在于第一个包含大量地图和UDT。在dev center中进行简单测试选择*from。。。限制999;(省略任何Lucene索引等)最后一个显示183m

  • 本文向大家介绍Spinrg WebFlux中Cookie的读写的示例,包括了Spinrg WebFlux中Cookie的读写的示例的使用技巧和注意事项,需要的朋友参考一下 WebFLux与WebMvc的差异 WebFlux读写Cookie不像WebMvc那么直接,最主要的原因是WebMvc是基于Servlet规范的,而WebFlux仅仅遵守的是HTTP协议。所以在使用的时候会发现HttpServl

  • 现在,每当在我的数据库中的表上发生插入/更新/删除时,我需要向其他系统发送消息,这些系统需要了解我的系统中的更改,因为我的数据库是主数据,所以这里发生的任何更改都需要投射到下游系统,以便它们获得最新的数据并在其系统中维护这些数据。为此,我可以使用MQ或Kafka,所以每当有变化时,我可以生成关键消息并将其放入MQ或使用Kafka进行消息传递。 到目前为止,我还没有像我想的那样使用事件源,因为我没有