面试必懂的Kafka核心概念

栏目: 后端 · 发布时间: 5年前

内容简介:JMS:Java对于应用程序之间进行异步交互信息的API.P2P一对一消息传递,消费者需要主动从队列中获取,消息不会自动推送,且消息被消费后就会从队列中删除,所以不会有重复消费的场景。

JMS:Java对于应用程序之间进行异步交互信息的API. 两种模式:

  1. Point-to-Point(P2P)(点对点)

面试必懂的Kafka核心概念

P2P一对一消息传递,消费者需要主动从队列中获取,消息不会自动推送,且消息被消费后就会从队列中删除,所以不会有重复消费的场景。

  1. Publish/Subscribe(发布订阅)

面试必懂的Kafka核心概念

Pub/Sub消息组播场景。发布订阅模式可以有多种不同的订阅者,消息推送到各个订阅者,临时订阅者只在主动监听才接受消息,而持久订阅者则监听主题的所有消息。

Kafka提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。

二、Kafka拓扑结构

面试必懂的Kafka核心概念

三、Kafka核心概念

Broker

Broker是Kafka集群的实例或者说服务单元。Broker接收来自生产者的消息,为消息设置偏移量,并提交消息到磁盘保存。Broker为消费者提供服务,对读取分区的请求作出响应,返回已经提交到磁盘上的消息。多个Broker构成Kafka集群,其中一个Broker会成为集群控制器(cluster controller)即leader,负责管理集群,包括分配分区到broker、监控broker故障等。leader宕机也会进行选举,保证集群高可用。一般Broker分布在不同机器上。

Producer

生产者,创建消息,默认情况下Kafka会将消息均衡分配到所有的分区。可以根据消息的key,使用路由策略,将相同key值的消息写入同一个分区。

Consumer

消费者,可以订阅一个或多个主题。在读取时,消费者会记录当前已经读取的消息位移(offset),一般将该位移称为消费位移。

Consumer Group

Kafka利用消费组进行并行消费,相同Group的consumer不会重复消费,它们之间互不影响。Kafka保证每个分区只会被同一个Group里面的一个Consumer所消费。

Topic

主题,Kafka的消息以主题来进行分类,主题类似数据库中的表。Producer向主题里面丢消息,Consumer从主题拉取消息,形成发布订阅。

Partiton

面试必懂的Kafka核心概念

分区。消息存在主题的队列中,分区就是将主题队列分成小队列,每个小队列都是一个有序不变的消息序列。每个partition在存储层面是append log文件,任何发布到此partition的消息都会被直接追加到log文件的尾部,每条消息在文件中的位置称为offset(偏移量)或,offset为一个long型数字,它是唯一标记一条消息。分区的存在大大提升Kafka的吞吐量。

Replication

副本,Kafka的消息存放在副本中,副本分为leader和follower,可以在配置中指定副本数量,副本存放在不同的Broker进程中,每个分区可配置多个副本实现高可用

面试必懂的Kafka核心概念

上图中:

3个Broker服务:Broker0,Broker1,Broker2

3个分区:partition0,partition1,partition2

2个副本:一个leader,一个follwer

同一个分区的不同副本放在不同的Broker上,同时每个分区的主副本均匀分布。

四、Kafka相关知识点:

1. Kafka没有做读写分离,消息的读写都在分区的leader Replica上完成,follower Replica只是作为数据冗余。

没做读写分离的原因:1)Kafka中使用分区和副本,分区的leader副本均匀分布在不同的Broker上,这本身已经对流量做了负载,没必要再做读写分离。

2)Kafka中保存的是流数据,需要Offset,而数据库中的数据是静态的,如果对follower也进行读的话,可能会让系统变得更复杂。个人感觉后续版本也可以提供这个功能。

2. Kafka只保证分区下的消息有序,不能保证Topic下的消息有序

3. Partition和Consumer Group关系:

  • 一个partition只能被同组的同一个consumer消费
  • 同一组的一个Consumer可以消费不同的Partition
  • 消费效率最高的情况是partition和consumer数量相同
  • Consumer数量大于Partition数量时,会有Consumer闲置

面试必懂的Kafka核心概念

3. Kafka基础概念总结图

面试必懂的Kafka核心概念

注:本文图片均来自网上资料收集


以上所述就是小编给大家介绍的《面试必懂的Kafka核心概念》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

电子邮件营销密码

电子邮件营销密码

[美] Jeanniey Mullen、David Daniesl / 薛剑韬 / 人民邮电出版社 / 2009-9 / 39.00元

在当今互联网蓬勃发展的形势下,电子邮件是互联网应用最广的服务之一。那么如何利用其作为有效的营销工具呢?本书系统地讲解了美国电子邮件营销的预算统筹、营销策略、管理模式、执行机制、涉及的技术、营销实施的细节等,其方法有很强的可循性,并可预见将获得的成果。阅读本书之后,读者会深刻感受到电子邮件营销的博大精深,它既是一门扎实严谨的科学,又是一项充满创造力的艺术。. 本书适合企业管理人员及市场营销人员......一起来看看 《电子邮件营销密码》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具