两张图读懂kafka应用
假设N副本全挂了,node规复后谋面对同步数据的进程,这时代ISR中没有node,会导致该分区处事不行用。kafka回收一种降级法子来处理赏罚:推举第一个规复的node作为leader提供处事,以它的数据为基准,这个法子被称为脏leader推举。因为leader是首要提供处事的,kafka broker将多个partition的leader均分在差异的server上以均派风险。每个parition都有leader,假如在每个partition内运行选主历程,那么会导致发生很是多选主历程。kakfa回收一种轻量级的方法:从broker集群中选出一个作为controller,这个controller监控挂掉的broker,为上面的分区批量选主。 同等性 上面的方案担保了数据高可用,偶然高可用是表此刻对同等性的捐躯上。假如但愿到达强同等性,可以采纳如下法子: 禁用脏leader推举,ISR没有node时,情愿不提供处事也不要未完全同步的node。 配置最小ISR数目min_isr,担保动静至少要被min_isr个node确认才气提交。 耐久化 基于以下几点究竟,kafka重度依靠磁盘而非内存来存储动静。 硬盘自制,内存贵 次序读+预读取操纵,能进步缓存掷中率 操纵体系操作富余的内存作为pagecache,共同预读取(read-ahead)+写回(write-back)技能,从cache读数据,写到cache就返回(操纵体系靠山flush),进步用户历程相应速率 java工具现实巨细比抱负巨细要大,使得将动静存到内存本钱很高 当堆内存占用不绝增进时,gc发抖较大 基于文件次序读写的计划思绪,代码编写简朴 在耐久化数据布局的选择上,kafka回收了queue而不是Btree kafka只有简朴的按照offset读和append操纵,以是基于queue操纵的时刻伟大度为O(1),而基于Btree操纵的时刻伟大度为O(logN) 在大量文件读写的时辰,基于queue的read和append只必要一次磁盘寻址,而Btree则会涉及多次。磁盘寻址进程极大低落了读写机能
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |