极客时间已完结课程限时免费阅读

期末测试 | 这些Kafka核心要点,你都掌握了吗?

期末测试 | 这些Kafka核心要点,你都掌握了吗?-极客时间

期末测试 | 这些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

提建议

上一篇
结束语 | 以梦为马,莫负韶华!
unpreview
 写留言

精选留言(18)

  • 镜子中间
    2020-08-20
    终于看完了Kafka课程,这是我在极客时间学完的第一门课,也是坚持的最久的,期末测试得了80分,仍有进步的空间,感谢胡夕老师,也感谢坚持下来的自己,Mark一下,准备开始二刷了!

    作者回复: 嗯嗯,谢谢你的鼓励。其实,专栏期间我自己也对Kafka有了更进一步的了解,算是额外的收获了:)

    7
  • 孙同学
    2020-05-10
    做完题 85 哈哈 以为自己都忘了。。

    作者回复: 👍

    共 2 条评论
    2
  • 剑锋所指
    2021-08-03
    学完打卡 90分
    2
  • lei
    2020-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 来自北京
    很有深度
  • ifelse
    2021-08-14
    选择题90分
  • Godning
    2021-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-14
    kafka集群扩容, 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.Brooks
    2020-06-12
    虽然工作中从没用过kafka,依然学到很多。准备去追老师下一个源码课了

    作者回复: 嗯嗯,我们第二季见~

  • 趁早
    2020-04-20
    终于看完了,收货颇多,感谢胡总的辛苦付出

    作者回复: 谢谢鼓励,一起加油!

  • 黑山老妖
    2020-04-17
    谢谢老师!

    作者回复: 加油!

  • Tc
    2020-04-11
    老师的解读源码什么时候上

    作者回复: 准备中。。。。