这是我参与「第五届青训营 」笔记创作活动的第7天
消息队列运用
案例一 搜索过程中系统崩溃
解决方案:解耦
案例二
服务能力有限,面对庞大的数据量,订单数据一片茫然
解决方案:削峰,每次只获取10个请求处理
案例三
请求长尾
异步化处理
案例四
本地日志故障
什么是消息队列?
需要支持高吞吐、高并发、高可用 KAfaka:分布式的、分区的、多副本的日志提交服务 ROCKETMQ:强一致、高性能、高可靠、万亿级容量灵活和可拓展性 BMQ:存算分离、初期是承接高吞吐的业务场景
Kafka使用场景:
搜索服务、直播服务、订单服务、支付服务
如何使用?
创建集群、新增Topic、生产者逻辑、消费者逻辑
基本概念
topic有不同分区,不同分区可以并发处理,以此提高多个Topic处理消息的能力。 消费顺序性是一个独立的,对于另一个Group可以从另一个位置进行消费。 parition具有不同的副本replica,leader replica从ISR选出,可以进行多个对外的写入和进行读取,Follower从leader
数据复制
Zookeeper:负责存储集群元消息,包括分区的分配消息
一条消息的自述
生产者(produccer):如果发送一条消息,每次发射成功后再次发送,会遇到什么问题?解决:提高Batch批量发送,通过压缩减少消息大小