0
点赞
收藏
分享

微信扫一扫

解决window安装docker报错问题

_LEON_ 2023-09-02 阅读 15

目录

一、为什么会出现消息中间件?

二、消息中间件是干嘛的?

三、应用解耦

四、流量削峰

五、异步处理

1.串行方式:

2.并行方式:

3.引入消息队列:

 六、RocketMQ的架构及概念


一、为什么会出现消息中间件?

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


二、消息中间件是干嘛的?

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

 


三、应用解耦

举例说明:

订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户下单成功

库存系统:订单下单的消息,采用拉/推的方式,获取下单信息,库存系统根据下单信息,进行
                        库存操作

假如:在下单时库存系统不能正常使用,也不影响正常下单,因为下单后,订单系统写入消息

    队列就不再关心其他的后续操作了。实现了订单系统与库存系统的应用解耦。


四、流量削峰

 举例说明:

秒杀活动,一般会因为流量过大,导致流量暴增,应用挂掉。为了解决这个问题,一般需要 在应用前端加入消息队列。


五、异步处理

用户注册后,需要发注册邮件和注册短信 传统的做法有两种

1.串行方式:

将注册信息写入数据库成功后,发送注册邮件,再发送注册短信,以上三个任务全部完成 后,返回给客户端

2.并行方式:

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

3.引入消息队列:


 六、RocketMQ的架构及概念

Broker(邮递员) :Broker是RocketMQ的核心,负责消息的接收,存储,投递等功能

NameServer(邮局) :消息队列的协调者,Broker向它注册路由信息,同时Producer和Consumer向其获取路由信息

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

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

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

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

Message: Message 是消息的载体。

 

举报

相关推荐

0 条评论