Sew*_*zki 17 java-native-interface in-memory-database key-value-store rocksdb apache-kafka-streams
在Apache Kafka 0.9和0.10的新功能调查期间,我们使用了KStreams和KTables.有一个有趣的事实是,Kafka在内部使用RocksDB.请参阅Kafka Streams简介:流处理变得简单.RocksDB不是用JVN兼容语言编写的,因此需要仔细处理部署,因为它需要额外的共享库(取决于操作系统).
这里有一些简单的问题:
我试图搜索答案,但我只看到隐含的原因,RocksDB在每秒大约数百万次操作范围内的操作非常快.
另一方面,我看到一些用Java编码的数据库,也许端到端他们可以做到这一点,而且他们不会通过JNI.
Mat*_*Sax 22
RocksDB用于几个(内部)原因(正如您已经提到的那样,例如它的性能).从概念上讲,Kafka Streams不需要RocksDB - 它用作内部键值缓存,并且提供类似功能的任何其他商店也可以使用.
来自@miguno的评论(改述):
与纯内存中的键值存储相比,RocksDB的一个重要优势是它能够写入光盘.因此,Kafka Streams可以支持比可用主存储器大的状态.
来自@miguno的评论:
仅供参考:
"RocksDB is not written in JVN compatible language, so it needs careful handling of the deployment, as it needs extra shared library (OS dependent)."作为Kafka Streams的用户,您无需安装任何东西.
使用Kafka Streams DSL,目前(v0.10.0.1)不能使用不同的键值存储.但是,未来版本将允许插入其他内容:https://issues.apache.org/jira/browse/KAFKA-3825
使用Kafka Streams Processor API,您可以通过StateStore接口实现自己的存储,并将其连接到拓扑中的处理器节点.即使这是更多的工作,它允许您解决当前的DSL限制.
| 归档时间: |
|
| 查看次数: |
11455 次 |
| 最近记录: |