首页 > 解决方案 > 如何在应用程序中处理 websockets 数据。在哪里缓冲?

问题描述

我正在使用一个名为的库cryptofeed来访问加密交换上的流式实时交换数据。一旦我打开 websockets 连接,就会有很多数据。我想将这些数据作为数据湖存储在 S3 上,但我担心从流数据创建文件并将其发送到 s3 会太慢 - 即创建文件并将文件发送到 S3 会更慢比传入的流数据最终导致我的应用程序内存不足。这是一个问题吗?如果是这样,我该怎么办?我应该使用 Kafka 或 Kinesis 作为流数据的缓冲区吗?如果是这样,我怎么知道将数据发送到 Kafka 或 Kinesis 将足够快以平衡传入的流数据?

这是图书馆:https ://github.com/bmoscon/cryptofeed

标签: websocketstreaming

解决方案


我写了有问题的图书馆。我建议在 Redis 之类的东西中缓冲数据。你也可以使用卡夫卡。查看库中的后端模块,提供的接口将为您将数据存储在 Kafka、Redis(和其他目的地)中。您还可以缓冲到文件并定期写入,查看 AsyncFile 实现(也在库中)。


推荐阅读