ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

消息队列RabbitMQ

2022-05-21 21:34:10  阅读:149  来源: 互联网

标签:服务 AMQP 队列 代理 RabbitMQ 消息 50ms


应用场景

高并发场景下, 避免大量请求打到服务器中导致服务器导致服务器崩溃, 可以将请求存储到消息队列中, 处理时每次从队列中获取几个请求进行处理, 这样就实现了削峰.
应用解耦, 当一个服务调用多个服务时, 耦合度较高, 如果被调用服务接口发生更改, 那么服务调用者代码也得进行修改, 如果引入消息队列的话, 不管是什么服务, 获取什么数据, 直接将消息存储到信息队列中, 取时直接从消息队列中取就行了.,
异步, 比如在用户注册场景下, 用户注册成功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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有