摘要: Kafka基于高吞吐率和效率考虑,并没有使用第三方网络框架,而且自己基于java nio封装的,总体网络模型如下: Broker的内部按照SEDA模型处理网络请求,处理过程如下: Accept Thread负责与客户端建立连接链路,然后把Socket轮转交给Process Thread Proces 阅读全文
posted @ 2018-02-01 19:38 木易森林 阅读(254) 评论(0) 推荐(0) 编辑
摘要: Partition Recovery机制 每个Partition会在磁盘记录一个RecoveryPoint, 记录已经flush到磁盘的最大offset。broker fail 重启时,会进行loadLogs。 首先会读取该Partition的RecoveryPoint,找到包RecoveryPoi 阅读全文
posted @ 2018-02-01 16:17 木易森林 阅读(2683) 评论(0) 推荐(0) 编辑
摘要: 一.topic中partition存储分布 在本地的kafka中,我们只启动一个broker,创建两个topic:single-todo和single-todo-vip ,每个topic有两个partition,在${KAFKA_HOME}conf/server.properties中log.dir 阅读全文
posted @ 2018-02-01 14:24 木易森林 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 副本分配算法如下: 将所有N Broker和待分配的i个Partition排序. 将第i个Partition分配到第(i mod n)个Broker上. 将第i个Partition的第j个副本分配到第((i + j) mod n)个Broker上. 将所有N Broker和待分配的i个Partiti 阅读全文
posted @ 2018-02-01 11:36 木易森林 阅读(877) 评论(0) 推荐(0) 编辑