栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Kafka基础概念

Kafka基础概念

本资料来源书籍《深入理解kafka核心设计与实践原理》

本资料来源书籍《深入理解kafka核心设计与实践原理》,属于个人理解记录
Kafka概念
基于zookpeeper协调的分布式系统,定位是分布流处理平台,饰演了三个角色
1.消息系统:除了常规消息中间件的功能外还提供了消息的有序性保障,和消费回溯功能
2.存储系统:kafka消息存储在磁盘中,可长期保存数据
3.流处理平台:提供可靠的数据来源,提供流处理类库

1.基本概念

kafka由若干个producer,若干broker,若干consumer,和一个zookeeper集群组成
producer用于生产消息发送到broker,broker-服务代理节点存储消息到磁盘,consumer负责消费信息从broker中订阅信息。zookeeper负责集群元数据的管理,控制器的选举。

2.1.主题 topic 和 分区partition:

主题是个概念性的东西,生产者发送消息是发送到指定的主题,消费者需要订阅指定主题进行消息获取,一个系统中可能有若干个主题
而分区是指在主题下还可细分多个分区,可将消息存储在不同的分区中,单个分区只属于一个主题,不能属于多个主题。

消息被追加到分区的时候 会分配一个特定的属性:偏移量 offset 用来保证消息的有序性,kafka的broker可以部署在不同的服务器上,分区可以横跨不同的服务器,也就是说一个主题不同的分区可以放在不同的服务器上,性能更加强大。

注意,消息被存放时是按顺序存放的

消息根据配置存放在不同分区,分区可在主题创建时设置数量。也可在主题创建后增加分区数量做到水平扩展。

2.2.kafka的replica受灾机制

分区有replica 的副本机制,一个分区可能存在多个副本,如果有三个分区,副本系数设置为3的值,则代表一个分区有三个副本,一个leader 主副本 两个follower 从副本,消费者和生产者只跟主副本进行互动,从副本只负责同步消息。很多时候从副本与主副本相比消息有一定的滞后性

具体副本的概念就不多做介绍了 简单就是
AR( Assigned Replicas ) = ISR(In-Sync Replicas) + OSR(Out-of-Sync Replicas )
转载一篇文章可以在这里看看详细的介绍,如果侵权麻烦告知删除

消费端也有一定的受灾能力,从broker消费消息的时候会在消费的地方保存消费的位置,当消费端宕机后会读取这个消费位置 重新拉取消息 不会造成数据的丢失

2.3 偏移量

HW - Watermark 是一个高水位,标识了一个特定的偏移量,消费者 consumer 只能获取这个偏移量之前的数据,下图HW设置偏移量值是6,那么消费者只能获取6之前的数据,LEO代表即将要插入的信息

LEO Log End Offset 缩写,它标识当前日志文件中下一条待写入消息 offset,6之后的数据对于用户都是不可见的,6,7,8…之后的数据会存入leader副本中, follower 副本会发送拉取请求来拉取6与6之后的数据进行消息同步
当所有副本的数据一致后HW和LEO的值会变成9,那么用户就可以读取上图中所有的数据了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/702032.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号