期末测试 | 这些Kafka核心要点,你都掌握了吗?
下载APP
关闭
渠道合作
推荐作者
期末测试 | 这些Kafka核心要点,你都掌握了吗?
2020-04-09 胡夕 来自北京
《Kafka核心技术与实战》
课程介绍
你好,我是胡夕。
《Kafka 核心技术与实战》已经结课一段时间了,你掌握得怎么样了呢?我给你准备了一个结课小测试,来帮助你检验自己的学习效果。
这套测试题有选择题和简答题两种形式。选择题共有 20 道题目,考题范围覆盖专栏的 42 讲正文,题目类型为单选题和多选题,满分 100 分,系统自动评分。简答题共有 5 道,建议你拿出纸笔,写下你的思考和答案,然后再和文末的答案进行对照。
还等什么,点击下面按钮开始测试吧!
简答题
如果副本长时间不在 ISR 中,这说明什么?
谈一谈 Kafka Producer 的 acks 参数的作用。
Kafka 中有哪些重要组件?
简单描述一下消费者组(Consumer Group)。
Kafka 为什么不像 Redis 和 MySQL 那样支持读写分离?
答案与解析
1. 如果副本长时间不在 ISR 中,这说明什么?
答案与解析:
如果副本长时间不在 ISR 中,这表示 Follower 副本无法及时跟上 Leader 副本的进度。通常情况下,你需要查看 Follower 副本所在的 Broker 与 Leader 副本的连接情况以及 Follower 副本所在 Broker 上的负载情况。
2. 请你谈一谈 Kafka Producer 的 acks 参数的作用。
答案与解析:
目前,acks 参数有三个取值:0、1 和 -1(也可以表示成 all)。
0 表示 Producer 不会等待 Broker 端对消息写入的应答。这个取值对应的 Producer 延迟最低,但是存在极大的丢数据的可能性。
1 表示 Producer 等待 Leader 副本所在 Broker 对消息写入的应答。在这种情况下,只要 Leader 副本数据不丢失,消息就不会丢失,否则依然有丢失数据的可能。
-1 表示 Producer 会等待 ISR 中所有副本所在 Broker 对消息写入的应答。这是最强的消息持久化保障。
3.Kafka 中有哪些重要组件?
答案与解析:
Broker——Kafka 服务器,负责各类 RPC 请求的处理以及消息的持久化。
生产者——负责向 Kafka 集群生产消息。
消费者——负责从 Kafka 集群消费消息。
主题——保存消息的逻辑容器,生产者发送的每条消息都会被发送到某个主题上。
4. 简单描述一下消费者组(Consumer Group)。
答案与解析:
消费者组是 Kafka 提供的可扩展且具有容错性的消费者机制。同一个组内包含若干个消费者或消费者实例(Consumer Instance),它们共享一个公共的 ID,即 Group ID。组内的所有消费者协调在一起来消费订阅主题的所有分区。每个分区只能由同一个消费组内的一个消费者实例来消费。
5.Kafka 为什么不像 Redis 和 MySQL 那样支持读写分离?
答案与解析:
第一,这和它们的使用场景有关。对于那种读操作很多而写操作相对不频繁的负载类型而言,采用读写分离是非常不错的方案——我们可以添加很多 Follower 横向扩展,提升读操作性能。反观 Kafka,它的主要场景还是在消息引擎,而不是以数据存储的方式对外提供读服务,通常涉及频繁地生产消息和消费消息,这不属于典型的读多写少场景。因此,读写分离方案在这个场景下并不太适合。
第二,Kafka 副本机制使用的是异步消息拉取,因此存在 Leader 和 Follower 之间的不一致性。如果要采用读写分离,必然要处理副本滞后引入的一致性问题,比如如何实现 Read-your-writes、如何保证单调读(Monotonic Reads)以及处理消息因果顺序颠倒的问题。相反,如果不采用读写分离,所有客户端读写请求都只在 Leader 上处理,也就没有这些问题了。当然,最后的全局消息顺序颠倒的问题在 Kafka 中依然存在,常见的解决办法是使用单分区,其他的方案还有 Version Vector,但是目前 Kafka 没有提供。
分享给需要的人,Ta购买本课程,你将得20元
生成海报并分享
赞 12
提建议
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
上一篇
结束语 | 以梦为马,莫负韶华!
精选留言(18)
- 镜子中间2020-08-20终于看完了Kafka课程,这是我在极客时间学完的第一门课,也是坚持的最久的,期末测试得了80分,仍有进步的空间,感谢胡夕老师,也感谢坚持下来的自己,Mark一下,准备开始二刷了!
作者回复: 嗯嗯,谢谢你的鼓励。其实,专栏期间我自己也对Kafka有了更进一步的了解,算是额外的收获了:)
7 - 孙同学2020-05-10做完题 85 哈哈 以为自己都忘了。。
作者回复: 👍
共 2 条评论2 - 剑锋所指2021-08-03学完打卡 90分2
- lei2020-10-23胡老师,学完源码课然后来的实战课,收获很大。有没有好的讲解分布式的资料呢,能够综合一些学习
作者回复: 个人推荐阅读下《Designing Data-Intensive Applications》,然后根据自己的兴趣决定深入学习分布式系统哪个部分
1 - 执芳之手2020-08-14老师,你好。我的服务运行了一段时间,发送消息报错:Cannot perform operation after producer has been closed。网上说是,KafkaProducer 已经close了。但是,我不知道为什么被关闭的。
作者回复: 可以贴一贴代码吗?我看下。
1 - 杨栋2022-08-11 来自北京为什么我学完了进度还是显示97%
- 杨栋2022-08-11 来自北京很有深度
- ifelse2021-08-14选择题90分
- Godning2021-04-28老师,我们在对kafka性能测试时遇到了too many files open问题,单节点服务器是256/48t存储 磁盘做了raid0 集群是三台服务器构成 ,我们对单节点进行测试 启用五个topic 都是单分区 ,写入时带宽几乎占满 。当写入数据量到达3.6t时 系统文件句柄数就超过200w了 导致kafka崩溃 这种情况是kafka本身问题还是系统配置问题还是我们使用的问题呢
作者回复: 增加下ulimit -n
共 3 条评论 - 墙角儿的花2021-04-27老师,服务部署在阿里云上,生产者发送消息经常在非上班期间发生超时,如晚8点到第二天8点间出现发送超时(org.apache.kafka.common.errors.TimeoutException),而且根本就没什么qps,一分钟内都是个位数,白天时有一定的qps,但却不会出现超时,阿里云说网络没问题,请问该如何排查呢,谢谢
作者回复: 通常都是连不上broker导致的。如果不是网络问题,查看下bootstrap.servers的配置吧
- H.L.2021-01-14kafka集群扩容, reassign主题分区迁移,这个不讲了吗?
作者回复: 之前的课程应该有涉及这些
- 旭旭2020-12-03完整的看了你的这门课 实在不错 有种相见恨晚的感觉 希望老师多推出一些大数据相关的优秀课程!
作者回复: 谢谢鼓励,对于Kafka我还有点信心,其他的信心不足,哈哈哈
- Stony.修行僧2020-10-25补充一下 如果你的Partition只有一个副本,也就是一个Leader,任何Follower都没有,你认为acks=all有用吗? 当然没用了,因为ISR里就一个Leader,他接收完消息后宕机,也会导致数据丢失。 所以说,这个acks=all,必须跟ISR列表里至少有2个以上的副本配合使用,起码是有一个Leader和一个Follower才可以。 这样才能保证说写一条数据过去,一定是2个以上的副本都收到了才算是成功,此时任何一个副本宕机,不会导致数据丢失。展开
- 阡陌2020-08-07嗯,很多收货。但是也有很多没理解透彻的,准备从头再来一遍,加深理解和记忆。
作者回复: 加油,有问题随时留言交流:)
共 3 条评论 - Mr.Brooks2020-06-12虽然工作中从没用过kafka,依然学到很多。准备去追老师下一个源码课了
作者回复: 嗯嗯,我们第二季见~
- 趁早2020-04-20终于看完了,收货颇多,感谢胡总的辛苦付出
作者回复: 谢谢鼓励,一起加油!
- 黑山老妖2020-04-17谢谢老师!
作者回复: 加油!
- Tc2020-04-11老师的解读源码什么时候上
作者回复: 准备中。。。。