当前位置: 首页 > news >正文

MQ-导读

什么是MQ?

MQ是一款消息中间件,通常被称为"消息队列",用于分布式架构中上下文的异步通信,

由三个角色组成:

1. 消息提供者:发送消息的人

2. 消息接收者:接收、处理消息的人

3. 消息代理者:负责存放消息、转发消息

举个例子

就拿登录来说,用户在登录的时候需要去进行一些其他的操作,比如风控、短信、记录日志,如果采用同步的方式,那么用户在远程调用其他服务的时候就需要去等待其他微服务完成然后返回数据,这种情况十分影响用户的体验,所以就需要用到MQ异步消息,用户登录完直接将消息发到MQ,然后又MQ去进行异步通知其他服务,用户登录这块就能够直接结束,无需做没用的等待。

MQ的学习路线

同步调用

拿支付订单来举例子,如果是同步的话,那么就代表着支付服务完成了然后要依次去调用其他的服务,当服务多的时候,计算每个服务耗时都很短,但是加起来之后时间就不短了,而且还容易出现一些其他的情况,比如有个微服务突然出问题了,被熔断降级了,那么这一整个微服务都无法被访问,而且扩展性差,如果需要其他的功能,比如积分、短信通知,都不断的要去修改主代码去扩展,不符合开闭原则,如果说使用MQ将状态直接保留下来,那么其他的扩展业务只需要从MQ拿到状态信息之类的,就可以实现扩展,不需要去修改主代码业务

异步调用

异步调用使我们的业务无需等待即可结束,无需上下级传递消息,只需要在业务完成后将信息存储到MQ服务器即可,其他的业务就负责监听MQ,减少了耦合性,双方都不知道对方的存在

技术选型

市面上比较常见的异步调用技术RabbitMQ、RocketMQ、Kafka这三种,RabbitMQ算是比较常见的,一般来说中小型公司使用的都是RabbitMQ,这个是Rabbit公司所开源的与其他的大厂不同的是,这个公司基本上就是只开发这一个产品,所以维护升级的频率比较高,以及互联网中一些常见的问题解决方案都比较多,虽然吞吐量不如大厂,但是能够保证消息的可靠性和适应能力,对不同的语言技术都能够支持


http://www.mrgr.cn/news/82332.html

相关文章:

  • 权限管理的方法
  • windows C#-接口中的索引器
  • 才气小波与第一性原理
  • perf:对hutool的BeanUtil工具类做补充
  • 牛客网刷题 ——C语言初阶(5操作符)——BC111 小乐乐与进制转换
  • c#委托和事件
  • 设计模式 结构型 适配器模式(Adapter Pattern)与 常见技术框架应用 解析
  • Windows下使用bat实现端口映射进程守护
  • 【技术新浪潮】DeepSeek-V3:中国AI的开源巨浪,全球AI格局的破局者
  • 使用Python,networkx构造有向图及无向图以及图合并等api
  • vue设计与实现-框架设计
  • FPGA随记——过约束
  • WPF的一些控件的触发事件记录
  • 我在广州学 Mysql 系列——有关数据表的插入、更新与删除相关练习
  • 在DJI无人机上运行VINS-FUISON(PSDK 转 ROS)
  • 人脑处理信息的速度与效率:超越计算机的直观判断能力
  • win32汇编环境,窗口程序显示bmp图像文件
  • Structured-Streaming集成Kafka
  • LinuxC高级day5
  • CTFshow—远程命令执行
  • Kettle迁移至Oracle的空字符串和NULL的问题处理,大坑!
  • 国产编辑器EverEdit - 常用资源汇总
  • ubuntu开启root用户
  • ruoyi开发学习
  • 【计组不挂科】计算机组成综合习题库(选择题207道&判断题93道&填空题143道)(含答案与解析)
  • 数据挖掘——聚类