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,那么用户就可以读取上图中所有的数据了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值