博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kafka性能之道
阅读量:5975 次
发布时间:2019-06-20

本文共 1184 字,大约阅读时间需要 3 分钟。

Kafka高性能之道

高效使用磁盘

零拷贝

批处理和压缩

Partition

ISR

 

高效使用磁盘

》顺序写cipan

Append Only(数据不更新,无记录级的数据删除,只会整个segment删除)

》充分利用Page Cache

》支持多Directory(可使用多Drive

 

零拷贝

》传统模式下数据从文件传输到网络需要4次数据拷贝,4次上下文切换和2次系统调用

 

DMA先将文件拷贝到linux内核的Read buffercpu再将Read buffer里面的文件拷贝到Application buffercpu再将Application buffer里面的我呢件拷贝到Socket bufferDMA再将Socket buffer里面的文件拷贝到网络接口的Nic buffer中。

 

Kafka的零拷贝是指cpu不参加了拷贝,它通过NIOtransfer To/transferFrom调用操作系统的sendfile(内核级命令)实现零拷贝。总共发生2次内核数据拷贝,2次上下文切换和1次系统调用,消除了CPU数据拷贝

 

 

批处理和压缩

ProduceConsumer均支持批量处理数据,从而减少了网络传输的开销

Producer可将数据压缩后发送给broker,从而减少网络传输代价。目前支持SnappyGzipLZ4压缩。

 

Partition

》通过Partition实现了并行处理和水平扩展

PartitionKafka(包括Kafka Stream)并行处理的最小单元

》不同Partition可处于不同的Broker(节点),充分利用多机资源

》同一Broker上的不同Partition可置于不同的Directory,如果节点上由多个Disk Drive,可将不同的Drive对应不同的Directory,从而使Kafka从分利用多Disk Drive的磁盘优势

 

ISR

ISR实现了可用性和一致性的动态平衡

replica.lag.time.max.ms = 10000;

replica.lag.max.messages=4000;

ISR可容忍更多的节点失败

Majority Quorum如果要容忍f个节点失败,则需要2f+1个节点

ISR如果要容忍f个节点失败,至少需要f+1个节点

如何处理Replica Crash

Leader crash后,ISR中的任何replica皆可竞选成为Leader

》如果所有replicacrash,可选择让每一个recoverreplica或者第一个在ISR中的replica成为Leader

unclean.leader.election.enable

转载于:https://www.cnblogs.com/WardSea/p/7454019.html

你可能感兴趣的文章
树莓派raspberry pi配置无线路由器AP
查看>>
【转载】使用WIN32API获取打印机
查看>>
STORM_0002_在做好的zookeeper集群上搭建storm的开发环境
查看>>
Java命名规则
查看>>
《Python从小白到大牛》第7章 运算符
查看>>
博科:毫不迟疑地入软件网络时代
查看>>
玩转开放式虚拟格式,实战迁移虚拟机到vSphere 5
查看>>
轻松实现远程批量拷贝文件脚本(女学生作品)
查看>>
Nmap在pentest box中的扫描及应用
查看>>
测试组合索引
查看>>
四、物理优化(2)索引视图
查看>>
【沟通之道】头脑风暴-女人的心思你别猜
查看>>
redux-form(V7.4.2)笔记(一)
查看>>
钱趣多风控新举措:源头选择与物理隔离
查看>>
puppet最新源码包安装学习笔记
查看>>
vector容器与find算法
查看>>
烂泥:kickstart无人值守安装CentOS6.5
查看>>
Windows Phone 8 开发资源汇总
查看>>
互联网趋势关键词:交流,为价值付费,资源整合
查看>>
阿里钉钉,马云旗下的又一个千亿美金产品?
查看>>