NingG +

Apache Kafka 0.10 技术内幕:典型特点

目标

Kafka 之前就有各种个样的 MQ:

Kafka 的典型特点

Kafka 的优势:

msg 复制:同步、异步

Broker 上,通过配置 min.insync.replicas 参数,控制同步复制异步复制部分同步复制

参数 min.insync.replicas 可以配置的位置:

Note:要想参数 min.insync.replicas 生效,需要 Producer 上设置 acks to "all" (等待响应)。

log zero-copy 零拷贝

如果不使用 sendfile 系统调用,则:需要将 log 文件

  1. 先从 Page Cache 复制到 Broker 的内存空间
  2. 从 Broker 内存空间,复制到 Kernel Buffer 空间

具体过程:

思考: Page Cache 的作用?从磁盘读取 File,详细过程?几个 Cache?

Kafka Broker 利用sendfile系统调用,zero-copy(零拷贝),批量传输数据:

broker log 数据存储

Kafka 上 log 的磁盘持久化存储过程。

Kafka - topic - partition 的存储关系:

补充: 属于同一个 Topic 的 partition,只能通过文件夹名称前缀来识别,即,partition 对应文件夹的上一层,并没有 topic 对应的文件夹。

核心问题:一个 Topic 的 一个 partition,如何快速 seek 到任意 offset

小结

参考资料

Top