kafka架构:分区机制详解

本文介绍了Kafka中消息管理的基本单位——主题(topic)及分区机制。分区不仅可以突破单机存储容量限制,还提升了并发写入性能。文章还详细解释了如何通过offset追踪消息顺序,以及如何设置分区数量以确保消息的先进先出(FIFO)。

在这里插入图片描述
在这里插入图片描述

  • 消息是通过topic为单位进行管理;
  • 分区机制可以打破单机存储容量的限制,理论上可以存储海量的数据;
  • 分区数越大,并发写入的性能就越高。这也是kafka适合用于高并发和大数据领域的关键;
  • 每个topic对应一组日志分区数据;
  • 每一组日志分区是一个有序的不可变的日志序列,分区中的每一个record都被分配了唯一的序列编号称为是offset;
  • kafka会持久化所有发布到topic中的record信息,record的默认有效期是7天;
  • kafka会定期检查日志文件,将过期的数据从log中移除;
  • kafka采用磁盘存储日志文件。

在这里插入图片描述
在这里插入图片描述

PS:kafka只能保证同一个分区内部的数据是FIFO先进先出的,而不能保证所有的数据都是FIFO的。因为一个topic有多个分区,默认会使用轮询的方式对消息进行负载均衡。

  • offset的值越小,表示进入到分区时间越早;反之数据越新。
  • kafka只能保证分区内部有序,不能保证多个分区的先进先出。
  • 如果要严格保证数据是FIFO先进先出的,可以将topic的分区数设置为0,也就是不分区来保证先进先出。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

学亮编程手记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值