这个问题可能看起来像这样。我正在尝试收集有关如何实施 BGP 管道的想法。
我每秒通过 Kafka 接收 100-1000 条消息(BGP 更新),每次更新几千字节。
我需要将它们以二进制格式存档,并带有一些元数据以便快速查找:我正在定期构建 BGP 表的“状态”,它将合并在一定时间内收到的所有更新。因此需要一个数据库。
到目前为止我在做什么:将它们分组在“5分钟”文件(端到端消息)中,因为这对于 BGP 收集工具来说很常见,并将链接添加到数据库中。我意识到一些缺点:复杂(必须按键分组,管理 Kafka 偏移提交),没有很好的选择从哪里开始/结束。
我在想什么:使用数据库(Clickhouse/Google BigTable/Amazon Redshift)并插入每个条目,其中包含元数据和指向存储在 S3/Google Cloud 存储/本地文件上的唯一更新的链接。
我担心下载性能(很可能是通过 HTTP),因为将所有更新编译成一个状态可能需要数千条这样的消息。你有批量下载这个的经验吗?我认为将更新直接存储在数据库中也不是最佳选择。
有什么意见、想法、建议吗?谢谢