Kafka入门——可达鸭都觉得不难?

简介

        相信从事IT行业的你一定有听过Kafka这门消息队列技术。个人认为是随着行业的不断成熟,出现了越来越多的系统,系统间的信息传输愈发频繁,这促使了消息队列技术的诞生。而Kafka由于其较强的性能与可靠性在各类技术中脱颖而出。
        希望本篇文章能对你入门Kafka带来一点帮助。

基础架构说明

在这里插入图片描述
    作为消息队列技术,就类似于Kafka当个快递员,把快递(消息)从A传输到B手中。如上图所示,小智A就是消息生产者(Producer),可达鸭B就是消息消费者(Consumer)
    如果小智把食物发给可达鸭一只神奇宝贝,那运输的过程十分简单。但如果小智这时打算把食物分发给多个神奇宝贝,却只给了一大盒食物,神奇宝贝在吃食物的时候就容易抢食
在这里插入图片描述
    所以小智学聪明了,他决定把食物放到3个盒子里,分别对应3个神奇宝贝;这样他们就能有序的吃自己的食物,不容易混乱。这种把食物(消息)分成多份,并与消费者一一对应的方法,在Kafka里就叫分区Partition
在这里插入图片描述
    emmmm… 我觉得我编不下去了哈哈哈,放一下Kafka的各种术语的解释吧!

基础专业术语解释

  1. Producer
    消息生产者; 如Flume抽取的数据;
    如小智买的食物;

  2. Consumer
    消息消费者; 如Spark Streaming消费数据;
    如想吃食物的可达鸭

  3. Consumer Group
    消费者组; 由多个 Comsumer组成;
    如上图中吃食物的杰尼龟,可达鸭,皮卡丘

  4. Broker
    一台服务器就是一个Broker
    编不下去了…

  5. Topic
    可以理解为一个队列;生产者与消费者面向的都是一个队列;
    好比食物的种类?

  6. Partition
    分区,类似Spark中的Partition;将数据分到不同的Partition中;但每个Partition都是一个有序队列;
    相当于上图中的饲料碗,保证喂食有序进行…

  7. Replica
    副本,当集群故障的时候可以快速恢复数据;
    每个Partition有多个Replica副本;
    每个分区Partition都有一个Leader和多个Follower

  8. Leader
    Partition中的主信息;Producer发送数据的对象,Consumer消费数据的对象;
    我觉得Leader某种程度上等价于Partition;

  9. Follower
    不停的向Leader同步数据;当Leader挂掉的时候,Follower就会重新竞选生成Leader;

面试题

  1. Kafka中的ISR,AR代表什么?
    ISR(In-Sync Replica): 与 Leader保护同步的follower集合
    AR(Assigned Replica): 分区的所有副本

  2. Kafka中的HW,LEO等分别代表什么?
    LEO (Log End Offset): 当前日志文件中的下一条要写入消息的Offset
    HW (High Watermak): 高水位,标志Consumer可消费的日志的范围;
    如 HW = 6,则Consumer可消费的范围是0 ~ 5

    https://www.cnblogs.com/yoke/p/11486196.html

  3. Kafka中是怎么体现消息顺序性的?
    每个分区内,每条消息都有一个offset,保证分区内有序

  4. Kafka中的分区器,序列化器,拦截器是否了解?他们之间的顺序是如何?
    拦截器 --> 序列化器 --> 分区器

  5. Kafka生产者客户端的整体结构是什么样子的?使用了几个线程来处理?
    main线程,sender线程

  6. 讨论消费者组中的消费者个数 M 与 topic的分区数 N 关系
    M > N: 有消费者无法数据
    M = N: 消费者 与 分区 一一对应
    M < N: 有消费者消费多个分区

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章