转自: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 是几? 优化的key大小 尽可能使用Hash,hash占用空间少; 选择内存占用和效率更好的数据结构zipList kafka 有几种数据保存策略 Kafka Broker默认的消息保留策略是:要么保留一定时间
问题2:Kafka中有哪几个组件? 主题:Kafka主题是一堆或一组消息。 生产者:在Kafka,生产者发布通信以及向Kafka主题发布消息。 消费者:Kafka消费者订阅了一个主题,并且还从主题中读取和处理消息。 经纪人:在管理主题中的消息存储时,我们使用Kafka Brokers。 问题8:如何保证kafka顺序消费 这个在我看来是一个伪命题,如果要保证顺序消费为啥要用kafka呢,只是需要做到异步或者解耦? partition、n个线程,这里生产时需要根据需求将需要排序的数据发送到指定的message key 问题9:kafka为何这么快 Kafka 实现了零拷贝原理来快速移动数据,避免了内核之间的切换。 Kafka 可以将数据记录分批发送,从生产者到文件系统(Kafka 主题日志)到消费者,可以端到端的查看这些批次的数据。
第 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支持消息复制,因此消息永远不会丢失。
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的设计模式主要基于事务日志设计。 2. Kafka中有哪几个组件? 主题:Kafka主题是一堆或一组消息。 生产者:在Kafka,生产者发布通信以及向Kafka主题发布消息。 答:消费者组的概念是Apache Kafka独有的。基本上,每个Kafka消费群体都由一个或多个共同消费一组订阅主题的消费者组成。 5. ZooKeeper在Kafka中的作用是什么? 为什么Kafka技术很重要? 答:Kafka有一些优点,因此使用起来很重要: 高吞吐量:我们在Kafka中不需要任何大型硬件,因为它能够处理高速和大容量数据。 另外,我们可以用Kafka构建一个实时流处理平台,它可以对数据快速做出反应。 15. 在Kafka集群中保留期的目的是什么? 答:保留期限保留了Kafka群集中的所有已发布记录。 Kafka : 单机吞吐量10万级别,这是kafka最大的优点,就是吞吐量高。
Angular v8+面试系列 Angular 面试题汇总1-基本知识 Angular 面试题汇总2-Component/Service Angular 面试题汇总3-单元测试 目录 Angular ---- Angular v8+面试系列 Angular 面试题汇总1-基本知识 Angular 面试题汇总2-Component/Service Angular 面试题汇总3-单元测试 版权声明
本篇给大家总结了20道Kafka知识点或者说面试题,持续更新中... 1.kafka的3个关键功能? 发布和订阅记录流,类似于消息队列或企业消息传递系统。 以容错的持久方式存储记录流。 处理记录流。 2.kafka通常用于两大类应用? 建立实时流数据管道,以可靠地在系统或应用程序之间获取数据 构建实时流应用程序,以转换或响应数据流 3.kafka特性? 消息持久化 高吞吐量 扩展性 多客户端支持 Kafka Streams 安全机制 数据备份 轻量级 消息压缩 4.kafka的5个核心Api? Kafka集群中,一个kafka实例被称为一个代理(Broker)节点。 6.什么是Producer(生产者)? 消息的生产者被称为Producer。 实际写入到kafka集群并且可以被消费者读取的数据。每条记录包含一个键、值和时间戳。 12.kafka适合哪些场景? 日志收集、消息系统、活动追踪、运营指标、流式处理、时间源等。
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消费消息主要是依靠偏移量进行消费数据的,偏移量是一个不断自增的整数值,当发生重平衡的时候,便于用来恢复数据。
点击关注公众号,Java干货及时送达 前言 本文针对解决Kafka不同Topic之间存在一定的数据关联时的顺序消费问题。 1、问题引入 kafka的顺序消费一直是一个难以解决的问题,kafka的消费策略是对于同Topic同Partition的消息可保证顺序消费,其余无法保证。 另外,Kafka 系列面试题和答案全部整理好了,微信搜索Java技术栈,在后台发送:面试,可以在线阅读。 3、实现方案 消息发送: kafkaTemplate.send("TOPIC_INSERT", "1"); kafkaTemplate.send("TOPIC_UPDATE", "1"); 最新 Kafka 面试题整理好了,大家可以在Java面试库小程序在线刷题。
1 什么是kafka Kafka是分布式发布-订阅消息系统,它最初是由LinkedIn公司开发的,之后成为Apache项目的一部分,Kafka是一个分布式,可划分的,冗余备份的持久性的日志服务,它主要用于处理流式数据 2 为什么要使用 kafka,为什么要使用消息队列 缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka中 3.Kafka中的ISR、AR又代表什么? 6.kafka follower如何与leader同步数据 Kafka的复制机制既不是完全的同步复制,也不是单纯的异步复制。 15.Kafka中的消息是否会丢失和重复消费? 要确定Kafka的消息是否丢失或重复,从两个方面分析入手:消息发送和消息消费。
消息备份 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消息有序。 Kafka 中最基本的数据单元是消息 message(Kafka 中的消息理解成数据库里的一条行或者一条记录)5.9. Kafka 从生产到消费的全过程Kafka 的生产到消费总共经过生产者、Broker、消费者三个模块。 聊一聊你对Kafka的Log Retention的理解聊一聊你对Kafka的Log Compaction的理解聊一聊你对Kafka底层存储的理解(页缓存、内核层、块层、设备层)聊一聊Kafka的延时操作的原理聊一聊 (提示:消费者协调器和消费组协调器)Kafka中的事务是怎么实现的(这题我去面试6加被问4次,照着答案念也要念十几分钟,面试官简直凑不要脸。
1、为什么会用到kafka(消息队列的作用) 1) 缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka Kafka使用这种ISR收缩的方式有效的权衡了数据可靠性与性能之间的关系。 6、kafka follower如何与leader同步数据 Kafka的复制机制既不是完全的同步复制,也不是单纯的异步复制。 深入阅读:Kafka Rebalance机制分析 线上Kafka突发rebalance异常,如何快速解决? 14、如何为Kafka集群选择合适的Topics/Partitions数量 在kafka中,单个patition是kafka并行操作的最小单元。 17、谈谈你对 Kafka 幂等的了解? Kafka幂等性主要针对生产者而言。避免生产者数据重复提交至Kafka broker中并落盘。
在 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读取消息的客户端。
Kafka中有以下几个概念:Topic:特指Kafka处理的消息源(feeds of messages)的不同分类。 Producer:生产者,向Kafka的一个topic发布消息。Consumers:消费者,从kafka的某个topic读取消息。1.2. Kafka支持消息分区,每个分区中的消息保证顺序传输,而分区之间则可以并发操作,这样就提高了Kafka的并发能力。Kafka也支持在线增加分区,支持在线水平扩展。 Kafka会将Leader副本均匀地分布在集群中的服务器上,实现性能最大化。kafka利用顺序IO,以及page Cache达到的超高吞吐 2.7. zookeeper在Kafka中的作用? Kafka 中有哪些重要组件?Broker——Kafka 服务器,负责各类 RPC 请求的处理以及消息的持久化。生产者——负责向 Kafka 集群生产消息。消费者——负责从 Kafka 集群消费消息。
生产者在主题上发布消息: bin/kafka-console-producer.sh --broker-list 192.168.43.49:9092 --topic Hello-Kafka 注意这里的 消费者接受消息: bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic Hello-Kafka --from-beginning 7、Zookeeper 对于 Kafka 的作用是什么? Zookeeper 是一个开放源码的 、高 性能的协调服务 ,它 用于 Kafka 的分布式应用 。 与传统 MQ 消息系统之间有三个关键区别 (1).Kafka 持久化日志, 这些日志可以被重复读取和无限期保留 (2).Kafka 是一个分布式系统 :它以集群的方式运行 ,可以灵活伸缩 ,在内部通过 16、kafka 的高可用机制是什么? 这个问题比较系统 ,回答出 kafka 的系统特点,leader 和 follower 的关系,消息 读写的顺序即可。