首页 > 解决方案 > 使用 kafka 流状态存储来保存超过 5 亿条消息

问题描述

我正在尝试评估 kafka 流是否带有 RocksDB 状态存储,并在变更日志(状态主题)中有 5 亿条消息用于生产。

用例我有大约 8 个不同主题的数据,它们属于不同的团队,从这些主题中我关心某些数据点,所以我使用 Rocksdb 来保存对象的状态,我向其中添加了所需的数据来自不同的话题。

是否以这种方式使用带有状态存储的 kafka 流?

标签: apache-kafkaapache-kafka-streams

解决方案


您始终可以使用状态存储来存储数百万个密钥。正如@cricket007 所提到的,它需要磁盘存储来存储所有条目。随着状态被刷新到文件系统。通常数百万个键会导致存储或内存问题。只要您有可用的存储空间,它就可以工作。此外,您需要确保状态不在内存中。

根据个人经验,我在几个状态存储中拥有大约 1 亿个密钥,我首先遇到了磁盘空间问题,但添加更多磁盘后,它工作正常。

此外,您可以阅读有关容量规划的更多信息以获得一些公平的想法: https ://docs.confluent.io/current/streams/sizing.html


推荐阅读