这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天
一、本堂课重点内容:
今天的课程是关于消息队列原理及实战。
场景分析
- 系统崩溃
- 服务处理能力有限
- 链路耗时长尾
- 日志如何处理
解决方案:
- 解耦
- 削峰
- 异步
- 日志处理
什么是消息队列?
消息队列(MQ),指保存消息的一个容器,本质是个队列。但这个队列,需要支持高吞吐,高并发,并且高可用。
二、前世今生
业界消息队列对比
Kafaka:分布式的,分区,多副本的日志提交服务,在高吞吐场景下发挥较为出色
RocketMQ:低延迟,强一致,高性能,高可靠,万亿级容量和灵活的可扩展性,在一些实时场景中运用较广
Pulsar:是下一代云原生分布式消息流平台,集消息,存储,轻量化函数式计算为一体,采用存算分离的架构设计
BMQ:和Pulsar架构类似,存算分离,初期定位是承接高吞吐的离线业务场景,逐步替换掉对应的Kafka集群。
三、消息队列-Kafka
如何使用Kafka?
第一步:首先需要创建一个Kafka集群
第二步:需要在这个集群中创建一个Topic,并且设置好分片数量
第三步:引入对应语言的SDK,配置好集群和Topic等参数,初始化一个生产者,调用Send方法,将你的Hello World发送出去
第四步:引入对应语言的SDK,配置好集群和Topic等参数,初始化一个消费者,调用Poll方法,你将收到你刚刚发送的Hello World
四、消息队列-BMQ
BMQ兼容Kafka协议,存算分离,云原生消息队列,初期定位是承接高吞吐的离线业务场景,逐步替换掉对应的Kafka集群。
五、消息队列-RocketMQ
针对电商业务线,其业务涉及广泛,如注册,订单,库存,物流等;同时,也会涉及许多业务峰值时刻,如秒杀活动,周年庆,定期特惠等。
六、课后人个收获
通过本次课程我对典型的三种消息队列的实现方式及其特性有了更深的了解。