2023学年完整公开课版kafka原理_第1页
2023学年完整公开课版kafka原理_第2页
2023学年完整公开课版kafka原理_第3页
2023学年完整公开课版kafka原理_第4页
2023学年完整公开课版kafka原理_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

kafka构造及原理1.了解Kafka的构造及原理

2.了解kafka的特点

一、kafka构造

二、持久化

三、传输效率

四、无状态的broker

五、交付保证

六、副本管理

七、分布式协调1.kafka构造一、

持久化与传统的消息系统不同,Kafka系统中存储的消息没有明确的消息Id。消息通过日志中的逻辑偏移量来公开。消费者始终从特定分区顺序地获取消息,如果消费者知道特定消息的偏移量,也就说明消费者已经消费了之前的所有消息2.持久化生产者提交一批消息作为一个请求,一次请求获取一批数据,从而减少网络请求数量。Kafka没有采用无缓存设计,而是依赖于底层的文件系统页缓存。zero-copy:采用了大多数系统都会提供的sendfile系统调用。传统方式:

zero-copy:3.传输效率与其它消息系统不同,Kafka代理是无状态的。这意味着消费者必须维护已消费的状态信息。与其它消息系统不同的是从代理删除消息时,Kafka它将一个简单的基于时间的SLA应用于保留策略。当消息在代理中超过一定时间后,将会被自动删除。4.无状态的brokerKafka默认采用atleastonce的消息投递策略。

即在消费者端的处理顺序是获得消息->处理消息->保存位置。这可能导致一旦客户端挂掉,新的客户端接管时会继续处理前面客户端已处理过的消息。5.交付保证和其他分布式系统一样,节点“活着”的定义在于我们能否处理一些失败情况。kafka需要两个条件保证

“活着”:1.节点在zookeeper注册的session还在且可维护(基于zookeeper心跳机制)2.如果是slave则能够紧随leader的更新不至于落得太远。kafka采用insync来代替“活着”。如果follower挂掉或卡住或落得很远,则leader会移除同步列表中的insync。当一条消息是“提交”的,意味着所有insync的复本也持久化到了他们的log中。kafka动态的维护了一组in-sync(ISR)的复本,表示已追上了leader,只有处于该状态的成员组才是能被选择为leader。6.副本管理由于kafka中一个topic中的不同分区只能被消费组中的一个消费者消费,就避免了多个消费者消费相同的分区时会导致额外的开销。kafka中消费进程只需要在代理和同组消费者有变化时时进行一次协调。kafka使用zookeeper可以做以下事情: 1.探测broker和consumer的添加或移除; 2.当1发生时触发每个消费者进程的重新负载; 3.维护消费关系和追踪消费者在分区消费

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论