其他分享
首页 > 其他分享> > 消息队列RabbitMQ

消息队列RabbitMQ

作者:互联网

应用场景

高并发场景下, 避免大量请求打到服务器中导致服务器导致服务器崩溃, 可以将请求存储到消息队列中, 处理时每次从队列中获取几个请求进行处理, 这样就实现了削峰.
应用解耦, 当一个服务调用多个服务时, 耦合度较高, 如果被调用服务接口发生更改, 那么服务调用者代码也得进行修改, 如果引入消息队列的话, 不管是什么服务, 获取什么数据, 直接将消息存储到信息队列中, 取时直接从消息队列中取就行了.,
异步, 比如在用户注册场景下, 用户注册成功100ms后将会发送邮件50ms 发送短信50ms 一共200ms 引入消息队列后, 发短信和发邮件可以同时执行 100ms + 50ms = 150ms 大大的提高了系统效率

消息代理和消息目的地

消息代理: 用于代理发送或接受消息的东西
消息目的地分为两种

  1. 队列: 点对点接收, 当消息推送到消息队列中时, 多个服务强占队列中的数据, 谁先抢到算谁的.
  2. 主题: 发布订阅, 只要订阅了该消息的服务都能接受到消息.

JMS和AMQP

JMS: 基于JVm消息代理规范
AMQP: 高级的消息队列协议, 兼容AMQP RabbitMQ就是AMQP的实现
从下标可以看出, 如果是全部服务都是使用java代码进行编写, 那么使用Jms比较好些, 如果后端服务跨语言进行编写, 那么使用AMQP协议好一些, 因为传输数据是以byte进行传输, 语言可以进行兼容.
image

标签:服务,AMQP,队列,代理,RabbitMQ,消息,50ms
来源: https://www.cnblogs.com/lyraHeartstrings/p/16296052.html