消息队列

97 阅读1分钟

一、系统崩溃 image.png 二、链路耗时长尾 image.png 花费时间超过30秒之多 三、服务处理能力有限 四、日志如何处理

解决方案解耦

image.png

解决方案:削峰

image.png

解决方案:异步

image.png

日志处理

image.png 保存消息的一个容器,本质上是高吞吐、高并发、高可用

image.png

存算分离架构:

如何使用Kafka:

1创建kafka集群

2新增Topic

3编写生产者逻辑

4编写消费者逻辑

2.3 Relica

image.png 起到分区容灾的作用

2.4数据复制

image.png Broker:Controller起到了管理分区的作用。

2.5 Kafka架构

image.png

2.7 producer批量发送

image.png

2.8 Broker消息文件结构

image.png 日志文件存储真实的消息数据,Offset索引文件找到数据位置,通过时间戳作为索引 Broker写入的方式为磁盘末尾添加,减少磁头移动时间

image.png 二分找到小于目标时间戳最大索引的位置,在通过寻找offset的方式找到最终数据。

2.9 Consumner-Low-level

image.png 缺点:无法自动容灾,新增Consumner4需要进程的启停与停止消费的状态,造成数据中断。

image.png