前言:有好多同学留言说看不懂我之前写的博客——kafka应用实例篇,不明白里面的代码为什么那么写,我找到了自己之前写的关于kafka技术解析的ppt,现将部分重点及相关原理整理出来供大家参考。

1. 消息队列介绍

image.png
kafka定义:kafka是一个分布式的基于发布/订阅模式的消息队列(message queue),主要应用于大数据实时处理领域。
消息队列的定义
image.png
两种模式的区别
image.png
image.png
发布订阅模式如何实现实现了负载均衡?
image.png

2. 流行队列的模型比较

RabbitMQ
image.png
生产端发送一条消息通过路由投递到Queue,只有一个消费者能消费到。
image.png
当RabbitMQ需要支持多订阅时,发布者发送的消息通过路由同时写到多个Queue,不同订阅组消费此消息。
Kafka
image.png

3. Kafka架构

image.png
image.png
注意1:一个主题中的一个分区中的消息只能被一个消费者组中的一个消费者消费
image.png
注意2:但如果是不同的消费者组可以出现:一个分区中的消息可以被不同消费者组中的多个消费者同时消费
image.png
注意3:当一个消费者组中的消费者数大于分区数时:会造成消费者的资源浪费
image.png
注意4:当消费者数小于分区数:一个消费者可以同时消费两个消费者组中的消息

4. Kafka生产过程分析

1.写入方式--producer采用推(push)模式将消息发布到broker
image.png
image.png

5. Kafka的存储策略

image.png
image.png
文件存储方式
image.png


Eric
8 声望5 粉丝

许涛,Java后端研发,web端研发经验丰富,主要负责pc端和移动端的企业级业务处理系统定制化开发,如:综合网管、ERP系统、故障处理平台、电子工单系统、辅助监控系统等。