【Kafka学习笔记3】Kafka的基本概念

来源:

1、《Apache Kafka实战》胡夕 著

2、Kafka官方文档

1、kafka是什么

kafka既是消息引擎,也是一个分布式流式处理平台。

kafka的处理流程概括起来如下图:
在这里插入图片描述

  • kafka是一个集群
  • 依托zookeeper进行服务的协调管理
  • kafka能够接收生产者发布的消息到topic中,并由多个消费者订阅这些topic
  • kafka集群将流数据存储在一群叫做topic的结构中,每个记录由一个键、一个值、一个时间戳组成
  • kafka能够对流数据进行处理
  • kafka能够以容错、持久化的方式储存流式数据
  • 官方采用broker代表Kafka服务器

2、消息

Kafka中的消息是一个结构化的数据,有很多字段,包括管理消息的元数据、消息键、消息体。

Kafka使用紧凑的 **二进制字节数组 ** 保存消息,没有多余的比特位浪费。

Kafka的消息格式经历了V0V1V2三个版本的演变。

…待补充

3、topic

topic —— 主题

topic只是一个逻辑概念,代表了一类消息,也可以理解为消息发送的目的地。

一个topic可以被多个消费者订阅。

4、partition

partition —— 分区

Kafka通过partition来分散负载。
在这里插入图片描述
一个topic由多个partition组成,每个partition都有自己的序列号,从0开始。

只能在每个partition的尾部追加新的消息,每条消息都会被分配一个唯一的序号,叫做offset,值是从0递增的整数。

5、offset

offset—— 位移

partition下的每条消息都会被分配一个唯一的offset值。

因此,Kafka中的每一条消息的位置其实就是一个<topic, partition, offset>三元组,通过这个三元组,我们可以在Kafka集群中找到唯一的那条消息。

6、replica

replica —— 副本

Kafka集群是分布式的系统,为了实现高可靠性,采用冗余机制,保存一条消息为多个副本。

replica存在的唯一目的就是防止数据丢失。

replica分为两类:(1)leader replica领导者副本)、(2)follower replica追随者副本)。

7、leader和follower

Kafka的副本分为leaderfollower两类。

只有leader对外提供服务,所有的follower只是被动地从leader获取数据,保持和leader同步。

一旦leader宕机,立即会有一个follower被选举为leader接替它的工作。

Kafka会保证同一个partition下的多个replica不会分配到同一个broker上面。

8、ISR

ISR —— in-sync replica,也就是和leader保持同步的replica集合,通常情况下是包含leader在内的。

Kafkapartition动态维护一个replica集合。该集合中的所有replica保存的消息日志都与leader保持同步状态。只有这个集合中的replica才能被选举为leader,也只有该集合中的所有replica都接收到了同一条消息,Kafka才会将该消息置为 “已提交” 状态,即认为这条消息发送成功。

Kafka会保证:如果这个集合中至少存活一个replica,那么那些 “已提交” 的消息就不会丢失。

Kafka会动态地维护该集合。当其中一些replica滞后于leader状态一定程度之后,会被 “踢出” 这个ISR;而当这些replica的状态重新 “追上” leader之后,由会被 “加入” 这个ISR

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值