websocket - 如何在应用程序中处理 websockets 数据。在哪里缓冲?
问题描述
我正在使用一个名为的库cryptofeed
来访问加密交换上的流式实时交换数据。一旦我打开 websockets 连接,就会有很多数据。我想将这些数据作为数据湖存储在 S3 上,但我担心从流数据创建文件并将其发送到 s3 会太慢 - 即创建文件并将文件发送到 S3 会更慢比传入的流数据最终导致我的应用程序内存不足。这是一个问题吗?如果是这样,我该怎么办?我应该使用 Kafka 或 Kinesis 作为流数据的缓冲区吗?如果是这样,我怎么知道将数据发送到 Kafka 或 Kinesis 将足够快以平衡传入的流数据?
解决方案
我写了有问题的图书馆。我建议在 Redis 之类的东西中缓冲数据。你也可以使用卡夫卡。查看库中的后端模块,提供的接口将为您将数据存储在 Kafka、Redis(和其他目的地)中。您还可以缓冲到文件并定期写入,查看 AsyncFile 实现(也在库中)。
推荐阅读
- postgresql - postgres 函数更新大表和删除性能
- android - 在 Android 应用程序中,我得到计算的字体大小为 2.90909px
- flutter - 如何在 Flutter 中创建电子表格
- google-apps-script - 如何发布单个 Google Scripts 函数?
- java - 如何从带有参数的 UI 调用休息时启动 Spring 批处理作业
- jmeter - Jmeter-成功响应后如何在控制器中中断
- python - bytes('\xFF', 'utf-8') 返回
- angularjs - AngularJs ng-options 重复成重复
- mysql - 在 SQL 案例表达式中为“Then”子句返回多个值
- javascript - 按特定属性值对 JavaScript 对象进行排序