不得不说服自己,阿里的老板手写的“卡夫卡笔记”。面试完就直奔阿里。首先,Kafka是一个运行在集群中并且可以自由扩展的现代分布式系统。其次,Kafka可以根据需要存储数据,只要需要就可以存储。第三,流处理将数据处理水平提升到一个新的水平。消息系统只会传递数据。Kafka的流处理能力使我们能够用很少的代码动态地处理派生的流和数据集。因此,kafka不仅仅是一个消息中间件。Kafka不仅是一个消息中间件,还是一个流媒体平台。在这个平台上,可以发布和订阅数据流(kafka的流是单独封装流处理的),并且可以保存和处理,这就是kafka作者的设计理念。别再装大神了。上面说的都是这个大牛手写的kafka笔记。看了之后很是佩服,所以今天想分享给大家看看。话不多说,直接上目录(内容很多,先看看,有个大概的了解)。注:如果需要下载完整的手写笔记,可以【直接点这里】01kafka简介1.1什么是kafka1.2kafka中的基本概念1.2.1消息和批处理1.2.2主题和分区1.2.3生产者和消费者、偏移量、消费者组1.2.4Broker和集群1.2.5保留消息02为什么选择kafka2.1优势2.2常见场景2.2.1活动跟踪2.2.2传递消息2.2.3收集指标和日志2.2.4提交日志2.2.5流处理03Kafka的安装、管理和配置3.1安装3.1.1前期环境3.1.2下载安装kafka3.1.3运行3.1.4kafka的基本运行和管理3.2Broker配置3.3硬件配置对kafka性能的影响3.3.1磁盘吞吐量/磁盘容量3.3.2内存3.3.3网络3.3.4CPU3.3.5总结04Kafka集群4.1为什么需要kafka集群4.2如何估算Kafka集群中的Broker数量4.3Brokers如何加入kafkacluster05第一个kafka程序5.1创建我们的主题5.2生产者发送消息5.2.1强制属性(bootstrap.servers,key.serializer,value.serializer)5.3消费者接受消息5.3.1强制参数(group.id)5.4演示示例06Kafkaproducer6.1producer发送消息的基本流程6.2使用kafkaproducer6.2.1三种发送方式(sendandforget,同步发送,异步发送)6.2.2多线程下Producer6.2.3更多发送配置(acks,buffer.mempry,max.block.ms,retries,batch.size,linger.ms,compression.type,client.id,,orderguarantee)6.3序列化6.3.1自定义序列化需要考虑的问题6.4分区6.4.1自定义分区器07Kafka消费者7.1消费者入门7.1.1消费者组7.1.2消费者配置7.2消费者中的基本概念7.2。1消费者组7.2.2订阅7.2.3轮询7.2.4提交与抵消7.3消费者中的核心概念7.4kafka中的消费者安全7.5消费者提交抵消带来的问题7.5.1自动提交7.5.2手动提交(同步)7.5.3异步提交7.5.4同步异步结合7.5.5具体提交7.6分区重平衡7.7Graceful1退出7.8反序列化7.9独立消费者08深入理解kafka8.1集群Membership8.2什么是controller8.3Replication-kafka的核心8.3.1replication-factor8.3.2Copy类型8.3.3工作机制8.4处理请求的内部机制8.4.1生产请求8.4.2Get请求8.4.3ISR8。5物理存储机制8.5.1分区分配8.5.2文件管理8.5.3文件格式8.5.4索引8.5.5超时数据清理机制09可靠的数据交付9.1Kafka提供的可靠性保证和架构权衡9.2复制9.3Broker配置的影响关于可靠性9.3.1复制系数9.3.2不完整的领导者选举9.3.3最小同步副本9.4可靠系统中的生产者9.4.1发送确认9.4.2配置生产者重试参数9.4.3额外的错误处理9.5可靠系统中的消费者9.5。1消费者可靠性配置9.5.2显式提交offsets10kafka与Spring集成10.1与Spring集成10.1.1pom文件10.1.2统一配置10.1.3Producer端10.1.4Consumer端11SpringBoot与kafka集成12Kafka实战实战削峰填谷13数据管道与流处理(刚懂)13.1数据管道基本概念13.2流处理基本概念以上都是大牛手写的《Kafka笔记》。再来说说kafka的面试。关于kafka面试,前段时间收集了一道面试真题(从basic[17]-advanced[15]-advanced[12],共44道题)1.Kafka有什么用?使用场景是什么?2、Kafka中的ISR和AR分别代表什么?ISR缩放意味着什么?3、Kafka中的HW、LEO、LSO、LW等分别代表什么?4、Kafka如何反映消息的顺序?5、你了解Kafka中的partitioner、serializer、interceptor吗?它们之间的处理顺序是怎样的?6、Kafka生产者客户端整体结构是什么样子的?7、Kafka生产者客户端使用多少个线程进行处理?这些是什么?8.Kafka老的Scala消费者客户端在设计上有什么缺陷?9.》消费组中的消费者数量if如果主题分区多于topic分区,部分消费者将无法消费数据。这句话对吗?如果正确,是否有任何黑客手段?10、哪些情况会造成重复消费?11、什么情况下会造成Message泄露消费?12、KafkaConsumer不是线程安全的,如何实现多线程消费?13.简述消费者和消费组的关系14.当你使用kafka-topics.sh创建(删除)一个topic后,Kafka背后会执行什么逻辑?15.主题分区的数量可以增加吗?如果是这样,如何?如果不是,为什么?16.主题分区的数量可以减少吗?如果是这样,如何?如果不是,那么为什么?17、创建主题时如何选择合适的分区数?1、Kafka目前有哪些内部topic,有什么特点?它们各自的作用是什么?2、什么是优先副本?它有什么特殊功能?3、Kafka哪里有分区分配的概念?简述一下大致流程和原理4.简述Kafka的日志目录结构5.Kafka中有哪些索引文件?6、如果我指定了一个偏移量,Kafka如何找到对应的消息?7、如果我指定了时间戳,Kafka如何找到对应的消息?8.谈谈你对Kafka的LogRetention的理解9.谈谈你对Kafka的理解UnderstandingofLogCompaction10.谈谈你对Kafka底层存储的理解11.谈谈Kafka延迟操作的原理12谈谈Kafkacontroller的作用13.Kafka旧的Scala消费者客户端的设计有什么缺陷?14.消费再平衡的原理是什么?(提示:consumercoordinator和consumergroupcoordinator)15.Kafka中的幂等性是如何实现的?1、Kafka中的事务是如何实现的?2、什么是无效副本?对策是什么?3、多副本下,每个副本HW和LEO的演化过程4、Kafka在可靠性方面做了哪些改进?(HW,LeaderEpoch)5.为什么Kafka不支持读写分离?6.Kafka中如何实现延迟队列7.Kafka中如何实现死信队列和重试队列?8.Kafka中如何进行消息审计?9.Kafka中如何做消息跟踪?10.如何计算Lag?(注意read_uncommitted和read_committed的区别)11、Kafka需要关注哪些指标?12.Kafka有哪些设置设计让它有这么高的性能?答案就在这里!!整理了很多,有30页....关于kafka,今天就到这里了,以上手写的《Kafka笔记》(PDF)和面试进度(word)可以直接来找小编领取【直接点这里】
