RocketMQ 介绍
Apache RocketMQ 是一款 低延迟、高并发、高可用、高可靠的分布式消息中间件。消息队列 RocketMQ 可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。
RocketMQ 概念
- Topic:消息主题,用于将一类的消息进行归类,比如订单主题,就是所有订单相关的消息都可以由这个主题去承载,生产者向这个主题发送消息。
- 生产者:负责生产消息并发送消息到 Topic 的角色。
- 消费者:负责从 Topic 接收并消费消息 的角色。
- 消息:生产者向 Topic 发送的内容,会被消费者消费。
- 消息属性:生产者发送的时候可以为消息自定义一些业务相关的属性,比如 Message Key 和 Tag 等。
- Group:一类生产者或消费者,这类生产者或消费者通常生产或消费同一类消息,且消息发布或订阅的逻辑一致。
-
推荐阅读
为什么阿里的程序员成长如此之快?看完Alibaba“Java成长笔记”我懂了!_马小梦的博客-CSDN博客blog.csdn.net
2020锤爆35K月薪的MySQL面试笔记解析:索引+优化+锁+慢查询+事务
推荐观看
大厂面试真题集结地:阿里三面+腾讯二面+支付宝三面+拼多多二面+字节四面+淘宝五面_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com
厉害了!B站最全网络底层汇总:TCP、Sockt、三次握手、四次挥手、NIO、Epoll、多路复用(附赠源码、脑图)www.bilibili.com
阿里资深架构师讲解最“细”的spring源码(附赠讲课资料和源码)www.bilibili.com
Java架构师必会六大核心知识点:多线程、JVM、设计模式、MySQL、Redis、ZooKeeperwww.bilibili.com
为什么要使用 RocketMQ?
异步解耦
随着微服务架构的流行,服务之间的关系梳理非常重要。异步解耦可以降低服务之间的耦合程度,同时也能提高服务的吞吐量。
使用异步解耦的业务场景非常多,因为每个行业的业务都会不太一样,以一些比较通用的业务来说明相信大家都能理解。
比如电商行业的下单业务场景,以最简单的下单流程来说,下单流程如下:
- 锁库存
- 创建订单
- 用户支付
- 扣减库存
- 给用户发送购买短信通知
- 给用户增加积分
- 通知商家发货
我们以下单成功后,用户进行支付,支付完成会有个逻辑叫支付回调,在回调里面需要去做一些业务逻辑。首先来看下同步处理需要花费的时间