本文目录
一、前言
在开始之前首先要明确一点,kafka是一个分布式流平台,本质上是一个消息队列。谈到消息队列,就会联想到消息队列的三大作用:异步、消峰、解耦。kafka主要应用在大数据的实时处理领域,使用起来比较简单,本文主要分析kafka的工作流程、存储机制,分区策略,并围绕多个角度展开总结。
但是要注意的是,随着时代的巨轮驶向2020,目前kafka已经不是一家独大了,Pulsar作为一个天生支持多租户、跨地域复制、统一消息模型的消息平台,已经在不少企业成功的替代了Kafka。关于Apache Pulsar的更多知识,感兴趣的可以关注我,后面会对它进行总结和深入。
二、kafka工作流程
- kafka将消息按照topic进行分类,每条message由三个属性组成。
- offset:表示 message 在当前 Partition 中的偏移量,是一个逻辑上的值,唯一确定了 Partition 中的一条 message,可以简单的认为是一个 id;
- MessageSize:表示 message 内容 data 的大小;
- data:message 的具体内容
- 在整个kafka架构中,生