Apache kafka Kafka持久状态存储与内存中状态存储
我们正面临一个问题,即我们正在使用kafka持久状态存储,并且它的空间经常不足(8gb),因此我们正在考虑转移到内存中的状态存储 存储。persistenKeyValueStore(“名称”) 到 商店。inMemoryKeyValueStore(“名称”) 如果我们在内存中更改为,就没有什么问题了Apache kafka Kafka持久状态存储与内存中状态存储,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,我们正面临一个问题,即我们正在使用kafka持久状态存储,并且它的空间经常不足(8gb),因此我们正在考虑转移到内存中的状态存储 存储。persistenKeyValueStore(“名称”) 到 商店。inMemoryKeyValueStore(“名称”) 如果我们在内存中更改为,就没有什么问题了 如果代理/消费者重新启动,我们是否会丢失任何数据 消费者如何获取以前的数据?如果刷新内存中的旧数据,它是如何从代理获取数据的 如果它可以从代理中获取数据,这不是一个性能影响,因为它是一个网络调用,而
-您的状态必须适合主内存您的意思是,如果流不能适合主内存,它将无法工作?我们的主内存是32g,如果状态超过32g,它不是像lru缓存之类的吗?它会清理一些数据并加载当前数据,当需要旧数据时,它会从changelog主题(而不是本地状态存储,以防持久化)
您的意思是,如果流不能装入主内存,它将无法工作?
--正确。没有LRU或类似的机制——如果使用内存存储,则所有数据都必须装入主内存。这就是Kafka Streams在默认情况下使用持久存储的原因——允许处理更大的状态。