消息队列原理与实战 | 青训营笔记

66 阅读1分钟

这是我参与「第五届青训营 」笔记创作活动的第7天

消息队列运用

案例一 搜索过程中系统崩溃

image.png 解决方案:解耦

案例二

image.png 服务能力有限,面对庞大的数据量,订单数据一片茫然 解决方案:削峰,每次只获取10个请求处理

案例三

image.png 请求长尾 image.png 异步化处理

案例四

本地日志故障 image.png

什么是消息队列?

需要支持高吞吐、高并发、高可用 KAfaka:分布式的、分区的、多副本的日志提交服务 ROCKETMQ:强一致、高性能、高可靠、万亿级容量灵活和可拓展性 BMQ:存算分离、初期是承接高吞吐的业务场景

Kafka使用场景:

搜索服务、直播服务、订单服务、支付服务

如何使用?

创建集群、新增Topic、生产者逻辑、消费者逻辑

基本概念

topic有不同分区,不同分区可以并发处理,以此提高多个Topic处理消息的能力。 消费顺序性是一个独立的,对于另一个Group可以从另一个位置进行消费。 parition具有不同的副本replica,leader replica从ISR选出,可以进行多个对外的写入和进行读取,Follower从leader

数据复制

image.png image.png Zookeeper:负责存储集群元消息,包括分区的分配消息 一条消息的自述 生产者(produccer):如果发送一条消息,每次发射成功后再次发送,会遇到什么问题?解决:提高Batch批量发送,通过压缩减少消息大小