加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

两张图读懂kafka应用

发布时间:2019-07-17 03:45:26 所属栏目:建站 来源:快乐生活你我
导读:Kafka 中的术语 broker:中间的kafka cluster,存储动静,是由多个server构成的集群。 topic:kafka给动静提供的分类方法。broker用来存储差异topic的动静数据。 producer:往broker中某个topic内里出产数据。 consumer:从broker中某个topic获取数据。 Ka

假设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则会涉及多次。磁盘寻址进程极大低落了读写机能

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读