Kafka面试必问几个概念 与 使用场景

介绍下我写的这个kafka项目,里面做了详细的配置注释已经代码的demo,可供大家学习

项目地址
springboot-kafka集群项目实战kafka集群批量消费数据去重和一致性

kafka的几个重要概念

接下来围绕下面几个概念来进行分析

Alt

生产者: producer主要是用于生产消息,是kafka当中的消息生产者,生产的消息通过topic进行归类,保存到kafka的broker里面去
消费者:消息消费者,从Broker读取消息的客户端
Topic: Kafka根据topic对消息进行归类,发布到Kafka集群的每条消息都需要指定一个topic  
partition: kafka当中,topic是消息的归类,一个topic可以有多个分区,
每个分区保存部分topic的数据,所有的partition当中的数据全部合并起来,就是一个topic当中的所有的数据.topic的partition会跨节点分布,
一个topic下的多个partition会分布到不同broker上,每个 partition内部消息是有序的;

比如说broker集群有三个 b0,b1,b2 topic: test 有三个partition ,这样3个partittion就会平均分到三个broker上,每一个broker都会有test主题的一个分区 ,这就是kafka的高扩展性

Broker: 消息中间件处理节点,一个Kafka节点就是一个broker,一个或者多个Broker可以组成一个Kafka集群。
服务端(brokers)和客户端(producer、consumer)之间通信通过TCP协议来完成
ConsumerGroup: 消费者组  每个Consumer属于一个特定的ConsumerGroup,一条消息可以被多个不同的Consumer Group消费,
但是一个 Consumer Group中只能有一个Consumer能够消费该消息
Replicats: 其实就是partition的副本,用于数据同步和容灾,保证了kafka的高可用,
如kafka集群有三个broker节点  b0,b1,b2  topic:test 有两个分区  每个分区有三个副本replicate  ,此时应该是2*3=6个分区  

如下图 表示分区0 分布到broke0上 分区1 分布到broke1上,而且 分区0的两个副本分布在broke1 和broke2上,可以在kafka的数据目录broker下查看replicate日志
在这里插入图片描述

ISR:表示已同步的副本集,如果Leader宕机后会从ISR里面选一个作为Leader Replicate

当把broke1宕机后,再来检查下分区副本Leader以及Isr
在这里插入图片描述

Kafka核心总控制器Controller

在Kafka集群中会有一个或者多个broker,其中有一个broker会被选举为控制器(Kafka Controller),它负责管理整个集群中所有分区和副本的状态。

当某个分区的leader副本出现故障时,由控制器负责为该分区选举新的leader副本。
当检测到某个分区的ISR集合发生变化时,由控制器负责通知所有broker更新其元数据信息。
当使用kafka-topics.sh脚本为某个topic增加分区数量时,同样还是由控制器负责让新分区被其他节点感知到

Kafka的使用场景

● 日志收集:一个公司可以用Kafka收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、Hbase、Solr等。
● 消息系统:解耦生产者和消费者、缓存消息等。
● 用户活动跟踪:Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装载到hadoop、数据仓库中做离线分析和挖掘。
● 运营指标:Kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告。

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员路同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值