Bri*_*ook 5 latency distributed-computing apache-kafka
我知道 Kafka 不是 ak/v 商店,但请耐心听我说。假设它是使用下面的 k/v API 来粗略实现的。每个键都是一个主题,键的当前“值”是写入该主题的最后一条消息:
put(key, value) --> publish(topic=key, message=value)
get(key) --> consume(topic=key, offset = last_offset - 1)
Run Code Online (Sandbox Code Playgroud)
此外,假设状态在不同的 Kafka 集群之间复制(使用 MirrorMaker 双向),以允许用户读/写到更近的数据中心以减少延迟。
我已经知道这样做的一些明显的副作用,例如:
这里主要关注的是延迟,尤其是不同集群之间的延迟。与 Redis、memcached 或 etcd 等传统 k/v 解决方案相比,您认为该解决方案在压力大的工作负载(例如,给定键/主题上每秒数千次写入)和压力网络条件下的表现如何?
想法?
非常感谢你。
Kafka可以作为KV事件存储,实际上已经实现了改进: https: //cwiki.apache.org/confluence/display/KAFKA/KIP-67%3A+Queryable+state+for+Kafka+Streams
这里有几个链接,其中包含更多有关如何使用 Kafka Streams 查询 Kafka 中存储的状态的示例:https: //blog.codecentric.de/en/2017/03/interactive-queries-in-apache-kafka-流/,https://www.confluence.io/blog/unifying-stream-processing-and-interactive-queries-in-apache-kafka/
它默认使用 RocksDB,但可插入:https://www.confluence.io/blog/introducing-kafka-streams-stream-processing-made-simple/
您必须考虑如何在应用程序级别管理存储,但本质上,您的关注点是由 Kafka Streams API 管理的。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
6473 次 |
| 最近记录: |