RocketMQ详解

目录

1. 什么是消息中间件

2. 消息中间件使用场景

2.1 异步处理

2.2 应用解耦

3. 常见的消息中间件比较

 4. RocketMQ

4.1 RocketMQ的架构及概念

4.2 消息发送和接收

4.2.1 发送同步消息

4.2.2 接收消息

4.3 消费消息


消息中间件的产生的背景

在网络通讯中, Http 请求默认采用同步请求方式,基于请求与响应模式,在客户端与服务器进行通讯时,客户端调用服务端接口后,必须等待服务端完成处理后返回结果给客户端才能继续执行,这种情况属于同步调用方式。如果服务器端发生网络延迟、不可达的情况,可能客户端也会受到影响

1. 什么是消息中间件

消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行 分布式系统 的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer (生产者)、 Consumer (消费者)例如:寄快递

2. 消息中间件使用场景

2.1 异步处理

场景说明:用户注册后,需要发注册邮件和注册短信

传统的做法有两种:

a. 串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信,以上三个任务全部完成后,返回给客户端
b. 并行方式:将注册信息写入数据库成功后,发送注册邮件的同时发送注册短信,以上三个任务完成后,返回给客户端;与串行的差别是并行的方式可以提高处理的时间

引入消息队列,改造后的架构如下

按照以上约定,用户的响应时间相当于是注册信息写入数据库的时间,也就是 50 毫秒。注册邮件,发送短信写入消息队列后,直接返回,因此写入消息队列的速度很快,基本可以忽略,因此架构改变后,系统的吞吐量比串行提高了3 倍,比并行提高了 2

2.2 应用解耦

场景说明:用户下单后,订单系统需要通知库存系统,传统的做法是订单系统调用库存系统的接口

解耦合后:

订单系统:假如在下单时库存系统不能正常使用,也不影响正常下单,因为下单后,订单系统写入消息队列就不再关心其他的后续操作了,实现订单系统与库存系统的应用解耦

3. 常见的消息中间件比较

 4. RocketMQ

4.1 RocketMQ的架构及概念

 如上图所示,整体可以分成4个角色,分别是:NameServerBrokerProducer,Consumer

\bullet Broker(邮递员)

        \circ Broker是RocketMQ的核心,负责消息的接收,存储,投递等功能

\bullet NameServer(邮局)

        \circ 消息队列的协调者,Broker向它注册路由信息,同时 Producer Consumer 向其获取路由信

\bullet Producer(寄件人 )
        \circ 消息的生产者,需要从NameServer获取 Broker 信息,然后与 Broker 建立连接,向 Broker

送消息 

\bullet Consumer(收件人 )
        \circ 消息的消费者,需要从NameServer获取 Broker 信息,然后与 Broker 建立连接,从 Broker

取消息

\bullet Topic(地区 )
        \circ 用来区分不同类型的消息,发送和接收消息前都需要先创建Topic,针对 Topic 来发送和接收

消息

\bullet Message Queue(邮件 )
        \circ 为了提高性能和吞吐量,引入了Message Queue,一个 Topic 可以设置一个或多个 Message
Queue ,这样消息就可以并行往各个 Message Queue发送消息,消费者也可以并行的从多个 MessageQueue读取消息
\bullet Message
       \circ Message 是消息的载体

4.2 消息发送和接收

4.2.1 发送同步消息

这种可靠性同步地发送方式使用的比较广泛,比如:重要的消息通知,短信通知。

消息发送步骤 :
1. 创建消息生产者 , 指定生产者所属的组名
2. 指定 Nameserver 地址
3. 启动生产者
4. 创建消息对象,指定主题、标签和消息体
5. 发送消息
6. 关闭生产者

4.2.2 接收消息

消息接收步骤 :
1. 创建消息消费者 , 指定消费者所属的组名
2. 指定 Nameserver 地址
3. 指定消费者订阅的主题和标签
4. 设置回调函数,编写处理消息的方法
5. 启动消息消费者

4.3 消费消息

1. 负载均衡模式 ( 默认方式 )
消费者采用负载均衡方式消费消息,多个消费者共同消费队列消息,每个消费者处理的消息不同
2. 广播模式
消费者采用广播的方式消费消息,每个消费者消费的消息都是相同的

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值