美团每天产生几亿条消息,这些消息是如何处理的?kakfa又有什么魔力协助美团完成这么大数据量的运转?
据说去美团面试必定会被问到kafka的问题,有一道题是:kafka的存储机制是怎样的?
一、 kafka介绍:kafka 是分布式的、基于发布/订阅的消息机制。
特点:1、磁盘持久化
2、顺序写入,先进先出
3、支持流计算
结构:kafka的数据单元由字节数组组成。消息由key+value构成,key可为空。如下图所示:
消息模式: 数据格式json ,XML等
![](https://img.haomeiwen.com/i15042625/461cd9bd68068a64.png)
二、kafka的消息存储
1、 kafka的消息存储的划分: 1)主题; 2)分区
![](https://img.haomeiwen.com/i15042625/81e57650ed9bf354.png)
比如主题:消息可以根据美团电影票,外卖,团购,打车等主题进行分类分区;
比如主题外卖:可以分为北京,深圳,上海,三个分区
然后每个分区可以放在不同服务器,所以吞吐量可以非常高,堆服务器轻轻松松到100万。
2、kafka的消息以Broker存储。
1)一个独立的kafka服务器被称为broker
2)多个broker组成一个集群
3)多个broker,有一个当首领
4)副本机制
以下为一张kafka的经典集群图,来源网络。
![](https://img.haomeiwen.com/i15042625/26bf987a6b94c43e.png)
三、kafka 与其它消息中间件比较
![](https://img.haomeiwen.com/i15042625/8613b7025db0563d.png)
流计算的理解:
比如:今年的天猫两小时定量单突破千万,应该是给予消息系统的实时统计,不可能从数据库层面统计。
kafka的流计算:
![](https://img.haomeiwen.com/i15042625/31e35ffa7530612f.png)
四、安装,配置
略
五、使用
pom文件引用:
![](https://img.haomeiwen.com/i15042625/28eedc839cfd057c.png)
配置项:
![](https://img.haomeiwen.com/i15042625/23ea34b4da8cb8d0.png)
生产者发送消息:
![](https://img.haomeiwen.com/i15042625/8fe4d01e5e3dfa48.png)
消费者
![](https://img.haomeiwen.com/i15042625/de21ce3c21dd06ad.png)
网友评论