在研究 Apache Kafka 0.9 和 0.10 的新功能时,我们使用了 KStreams 和 KTables。有一个有趣的事实是 Kafka 在内部使用 RocksDB。请参阅Kafka Streams 简介:流处理变得简单。RocksDB 不是用 JVM 兼容语言编写的,因此需要仔细处理部署,因为它需要额外的共享库(依赖于操作系统)。
这里有一些简单的问题:
- 为什么 Apache Kafka Streams 使用 RocksDB?
- 怎么可能改变它?
我曾试图寻找答案,但我只看到隐含的原因,即 RocksDB 对于每秒数百万次操作范围内的操作非常快。
另一方面,我看到一些用 Java 编码的 DB,也许端到端它们可以做到这一点,而且它们不会通过 JNI。