转自:https://www.cnblogs.com/threecha/p/13737421.html 从以下方面对kafka面试进行总结:基本原理架构/项目实践/生产者/消费者/协调者/存储层/控制器 基本原理架构 简单讲下什么是kafka[一句话概括/架构图] 消息队列选型 你们为什么不选用其他消息队列 ZK 在消息队列中的作用是什么 注册中心[作为共享存储保存了kafka集群和客户端的相关信息 [队列1对1/订阅1对多] kafka为什么这么快 追加方式写入 producer层选择分区并行写入数据[避免全量消息提交到协调阶段在计算分区] 使用消息batch[消息批 减少通讯次数] kafka follower如何与leader同步数据 kafka节点之间消息如何备份的 kafka消息是否会丢失为什么 kafka的lead选举机制是什么 kafka 的消息保障方式有那些 项目实践 ACK 0 实战 kafka技术内幕 kafka在公司项目实践
kafka、rabbitMQ等来实现推送更新Redis! 一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 id 是几? 一般情况下,我们创建的表的类型是InnoDB,如果新增一条记录(不重启mysql的情况下),这条记录的id是8;但是如果重启(文中提到的)MySQL的话,这条记录的ID是6。 但是,如果我们使用表的类型是MylSAM,那么这条记录的ID就是8。因为MylSAM表会把自增主键的最大ID记录到数据文件里面,重启MYSQL后,自增主键的最大ID也不会丢失。 优化的key大小 尽可能使用Hash,hash占用空间少; 选择内存占用和效率更好的数据结构zipList kafka 有几种数据保存策略 Kafka Broker默认的消息保留策略是:要么保留一定时间
上篇介绍了kafka at-least-once消费模式。 kafka消费模式以commit-offset的时间节点代表不同的消费模式,分别是:at-least-once, at-most-once, exactly-once。 上篇介绍的at-least-once消费模式是通过kafka自身的auto-commit实现的。 事后想了想,这个应该算是at-most-once模式,因为消费过程不会影响auto-commit,kafka在每个设定的间隔都会自动进行offset-commit。 这也意味着这个exactly-once消费模式必须在一个提供事务处理功能的数据库系统里实现,也代表kafka-offset必须和其它交易数据一起存放在同一种数据库里。
Kafka的设计模式主要基于事务日志设计。 2. Kafka中有哪几个组件? 主题:Kafka主题是一堆或一组消息。 生产者:在Kafka,生产者发布通信以及向Kafka主题发布消息。 答:消费者组的概念是Apache Kafka独有的。基本上,每个Kafka消费群体都由一个或多个共同消费一组订阅主题的消费者组成。 5. ZooKeeper在Kafka中的作用是什么? 为什么Kafka技术很重要? 答:Kafka有一些优点,因此使用起来很重要: 高吞吐量:我们在Kafka中不需要任何大型硬件,因为它能够处理高速和大容量数据。 耐久性:由于Kafka支持消息复制,因此消息永远不会丢失。这是耐久性背后的原因之一。 可扩展性:卡夫卡可以扩展,而不需要通过添加额外的节点而在运行中造成任何停机。 8. Kafka : 单机吞吐量10万级别,这是kafka最大的优点,就是吞吐量高。
Kafka 基本概念和架构 问题 简单讲下 Kafka 的架构? Kafka 是推模式还是拉模式,推拉的区别是什么? Kafka 如何广播消息? Kafka 的消息是否是有序的? kafka-configs.sh:配置管理脚本 kafka-console-consumer.sh:kafka 消费者控制台 kafka-console-producer.sh:kafka 生产者控制台 关于 ISR,还有一个常见的面试题目是如何判断副本是否应该属于 ISR。 所以理解这些配置背后的实现原理,可以让我们在实践中懂得如何使用和优化 Kafka。既可面试造火箭,也可以实战造火箭。 ” 零拷贝 “哈哈,这个我面试被问到过。可惜答得一般般,唉。 ” 什么是零拷贝?
kafka事务机制 kafka的事务机制,是kafka实现端到端有且仅有一次语义(end-to-end EOS)的基础;事务涉及到 transactional producer 和transactional 的事务机制,在底层依赖于幂等生产者,幂等生产者是kafka事务的必要不充分条件; 事实上,开启kafka事务时,kafka会自动开启幂等生产者; kafka事务支持的设计原理 Transaction Coordinator log是kakfa的一个内部topic, 所以kafka可以通过内部的复制协议和选举机制(replication protocol and leader election processes),来确保 Transaction Coordinator还负责将事务写入kafka内部的一个topic,这样即使整个服务重启,由于事务状态得到保存,正在进行的事务状态可以得到恢复,从而继续进行; kafka事务机制下读写流程 全局一致的transactional.id维护 transactional.id在kafka的事务机制中扮演了关键的角色,kafka正是基于该参数来过滤掉僵尸生产者的 (fencing out zombies
---- Kafka监控及运维 在开发工作中,消费在Kafka集群中消息,数据变化是我们关注的问题,当业务前提不复杂时,我们可以使用Kafka 命令提供带有Zookeeper客户端工具的工具 Kafka-eagle 概述 为了简化开发者和服务工程师维护Kafka集群的工作有一个监控管理工具,叫做 Kafka-eagle。 修改kafka-eagle配置文件 node01执行以下命令修改kafka-eagle配置文件 cd /export/servers/kafka-eagle-bin-1.3.2/kafka-eagle-web useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull #kafka.eagle.username=root /servers/kafka-eagle-bin-1.3.2/kafka-eagle-web-1.3.2/db/ke.db kafka.eagle.username=root kafka.eagle.password
问题2:Kafka中有哪几个组件? 主题:Kafka主题是一堆或一组消息。 生产者:在Kafka,生产者发布通信以及向Kafka主题发布消息。 消费者:Kafka消费者订阅了一个主题,并且还从主题中读取和处理消息。 经纪人:在管理主题中的消息存储时,我们使用Kafka Brokers。 问题8:如何保证kafka顺序消费 这个在我看来是一个伪命题,如果要保证顺序消费为啥要用kafka呢,只是需要做到异步或者解耦? partition、n个线程,这里生产时需要根据需求将需要排序的数据发送到指定的message key 问题9:kafka为何这么快 Kafka 实现了零拷贝原理来快速移动数据,避免了内核之间的切换。 Kafka 可以将数据记录分批发送,从生产者到文件系统(Kafka 主题日志)到消费者,可以端到端的查看这些批次的数据。
kafka提供了两套consumer API:高级Consumer API和低级Consumer API。 1. 对于Kafka而言,pull模式更合适,它可简化broker的设计,consumer可自主控制消费消息的速率,同时consumer可以自己控制消费方式——即可批量消费也可逐条消费,同时还能选择不同的提交方式从而实现不同的传输语义 pull模式不足之处是,如果kafka没有数据,消费者可能会陷入循环中,一直等待数据到达。 Kafka有两种分配策略,一是roundrobin,一是range。 1. roundrobin ? ? 2. range ? ? 本次的分享就到这里了
第 7 章 Kafka 面试题 7.1 面试问题 Kafka 中的 ISR(InSyncRepli)、OSR(OutSyncRepli)、AR(AllRepli)代表什么? Kafka 中的 HW、LEO 等分别代表什么? Kafka 中是怎么体现消息顺序性的? Kafka 中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序是什么? 当你使用 kafka-topics.sh 创建(删除)了一个 topic 之后,Kafka 背后会执行什么逻辑? Kafka 有内部的 topic 吗?如果有是什么?有什么所用? Kafka 分区分配的概念? 简述 Kafka 的日志目录结构? 如果我指定了一个 offset,Kafka Controller 怎么查找到对应的消息? 聊一聊 Kafka Controller 的作用? Kafka 中有那些地方需要选举?
什么是Kafka? Kafka中有哪几个组件? 主题(Topic):Kafka主题是一堆或一组消息。 生产者(Producer):在Kafka,生产者发布通信以及向Kafka主题发布消息。 Kafka系统工具有哪些类型? Kafka迁移工具:它有助于将代理从一个版本迁移到另一个版本。 Mirror Maker:Mirror Maker工具有助于将一个Kafka集群的镜像提供给另一个。 Kafka可以接收的最大消息大小约为1000000字节。 Kafka的优点有那些? 高吞吐量:我们在Kafka中不需要任何大型硬件,因为它能够处理高速和大容量数据。 低延迟:Kafka可以轻松处理这些消息,具有毫秒级的极低延迟,这是大多数新用例所要求的。 容错:Kafka能够抵抗集群中的节点/机器故障。 耐久性:由于Kafka支持消息复制,因此消息永远不会丢失。
Angular v8+面试系列 Angular 面试题汇总1-基本知识 Angular 面试题汇总2-Component/Service Angular 面试题汇总3-单元测试 目录 Angular ---- Angular v8+面试系列 Angular 面试题汇总1-基本知识 Angular 面试题汇总2-Component/Service Angular 面试题汇总3-单元测试 版权声明
Kafka Kafka集群leader选举 Kafka创建副本的2种模式——同步复制和异步复制 同步复制流程 异步复制流程 Kafka判断一个broker节点是否存活 Kafka生产者发送消息确认机制( ack机制) KafkaISR机制 leader如何动态维护ISR Kafka集群leader选举 在kafka集群中,第一个启动的broker会在zk中创建一个临时节点/controller让自己成为控制器 Kafka创建副本的2种模式——同步复制和异步复制 Kafka动态维护了一个同步状态的副本的集合(a set of In-Sync Replicas),简称ISR,在这个集合中的节点都是和leader 既然kafka支持副本模式,那么其中一个Broker里的挂掉,一个新的leader就能通过ISR机制推选出来,继续处理读写请求。 生产者没有收到leader的ack回应会重试投递,会造成数据重复 kafKa消费消息主要是依靠偏移量进行消费数据的,偏移量是一个不断自增的整数值,当发生重平衡的时候,便于用来恢复数据。
本篇给大家总结了20道Kafka知识点或者说面试题,持续更新中... 1.kafka的3个关键功能? 发布和订阅记录流,类似于消息队列或企业消息传递系统。 以容错的持久方式存储记录流。 处理记录流。 2.kafka通常用于两大类应用? 建立实时流数据管道,以可靠地在系统或应用程序之间获取数据 构建实时流应用程序,以转换或响应数据流 3.kafka特性? 消息持久化 高吞吐量 扩展性 多客户端支持 Kafka Streams 安全机制 数据备份 轻量级 消息压缩 4.kafka的5个核心Api? Kafka集群中,一个kafka实例被称为一个代理(Broker)节点。 6.什么是Producer(生产者)? 消息的生产者被称为Producer。 消息的消费者,从kafka集群中指定的主题读取消息。 8.什么是Topic(主题)? 主题,kafka通过不同的主题却分不同的业务类型的消息记录。 9.什么是Partition(分区)?
在 0.11 版 本以前的 Kafka,对此是无能为力的,只能保证数据不丢失,再在下游消费者对数据做全局 去重。对于多个下游应用的情况,每个都需要单独做全局去重,这就对性能造成了很大影响。 0.11 版本的 Kafka,引入了一项重大特性:幂等性。所谓的幂等性就是指 Producer 不论 向 Server 发送多少次重复数据,Server 端都只会持久化一条。 幂等性结合 At Least Once 语 义,就构成了 Kafka 的 Exactly Once 语义。 ack就会为-1; Kafka的幂等性实现其实就是将原来下游需要做的去重放在了数据上游。 开启幂等性的Producer在初始化的时候会被kafka集群分配一个PID,发往同一Partition的消息会附带Sequence Number。
架构简化如下 日志采集客户端,负责日志数据采集,定时写受写入Kafka队列 Kafka消息队列,负责日志数据的接收,存储和转发 日志处理应用:订阅并消费kafka队列中的日志数据 2.5消息通讯 Zookeeper注册中心,提出负载均衡和地址查找服务 日志收集客户端,用于采集应用系统的日志,并将数据推送到kafka队列 Kafka集群:接收,路由,存储,转发等消息处理 Storm集群:与OtherApp (文件追加的方式写入数据,过期的数据定期删除) 高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息 支持通过Kafka服务器和消费机集群来分区消息 支持Hadoop并行数据加载 Kafka相关概念 Broker Kafka集群包含一个或多个服务器,这种服务器被称为broker[5] Topic 每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。 Producer 负责发布消息到Kafka broker Consumer 消息消费者,向Kafka broker读取消息的客户端。
点击关注公众号,Java干货及时送达 前言 本文针对解决Kafka不同Topic之间存在一定的数据关联时的顺序消费问题。 1、问题引入 kafka的顺序消费一直是一个难以解决的问题,kafka的消费策略是对于同Topic同Partition的消息可保证顺序消费,其余无法保证。 另外,Kafka 系列面试题和答案全部整理好了,微信搜索Java技术栈,在后台发送:面试,可以在线阅读。 面试题整理好了,大家可以在Java面试库小程序在线刷题。 Spring Boot 3.0 M1 发布,正式弃用 Java 8 Spring Boot 学习笔记,这个太全了! 关注Java技术栈看更多干货 获取 Spring Boot 实战笔记!
消息备份 Kafka允许同⼀个Partition存在多个消息副本(Replica),每个Partition的副本通常由1个Leader及0个以上的Follower组成,⽣产者将 消息直接发往对应Partition 的Leader,Follower会周期地向Leader发送同步请求,Kafka的Leader机制在保障数据⼀致性地同时降低了了 消息备份的复杂度; 同⼀Partition的Replica不应存储在同一个 为了做好负载均衡并提⾼容错能力,Kafka会尽量将所有的Partition以及各Partition的副本均匀地分配到整个集群上; ISR机制 kafka中每一个主题又进一步划分成若干个分区。 副本的概念实际上是在分区层级下定义的,每个分区配置有多若干个副本;所谓副本,本质上就是一个只能追加写消息的提交日志,根据kafka副本机制的定义,同一个分区下的所有副本保存着相同的消息序列,这些副本分散的保存在不同的 Broker上,从而能够对抗部分Broker宕机带来的数据不可用; 在kafka分区中的副本机制中,又分了Leader节点和Follower节点,消息会写到Leader节点中,由Leader节点将数据同步给
,同一Topic的多个分区内的消息,Kafka并不保证其顺序性kafka消息有序。 通常来说,同一个group下的所有消费者提交的位移数据保存在位移主题的同一个分区下8. rebalance如何缩短rebalance时间减少consumer个数当消费者拉取消息或者提交时,便会发送心跳。 Kafka 从生产到消费的全过程Kafka 的生产到消费总共经过生产者、Broker、消费者三个模块。 聊一聊你对Kafka的Log Retention的理解聊一聊你对Kafka的Log Compaction的理解聊一聊你对Kafka底层存储的理解(页缓存、内核层、块层、设备层)聊一聊Kafka的延时操作的原理聊一聊 (提示:消费者协调器和消费组协调器)Kafka中的事务是怎么实现的(这题我去面试6加被问4次,照着答案念也要念十几分钟,面试官简直凑不要脸。
1、为什么会用到kafka(消息队列的作用) 1) 缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka 新的consumer使用了kafka内部的group coordination协议,也减少了对zookeeper的依赖 8、Kafka如何保证数据不丢失 Kafka存在丢消息的问题,主要发生在Broker 深入阅读:Kafka Rebalance机制分析 线上Kafka突发rebalance异常,如何快速解决? 14、如何为Kafka集群选择合适的Topics/Partitions数量 在kafka中,单个patition是kafka并行操作的最小单元。 17、谈谈你对 Kafka 幂等的了解? Kafka幂等性主要针对生产者而言。避免生产者数据重复提交至Kafka broker中并落盘。