RabbitMQ架构和模式

RabbitMQ

1、同步与异步

1、同步

  • Feign:典型的同步调用

譬如:A服务调用B服务的接口

如果B服务没有返回数据给A服务之前,A服务是无法继续后续业务的

优点:

  1. 时效性强

缺点:

  1. 耦合度高
  2. 性能低:被调用的服务时长,直接影响了整个接口的RT
  3. 级联失败:被调用的服务如果失败了,直接影响了整个接口

2、异步

  • 多线程

譬如:A服务调用B服务的接口

在A服务中通过异步方式去访问B服务的接口,那么只要这个请求已经发送给B服务,A服务就无需关心,直接继续自己的业务即可

优点:

  1. 耦合度低
  2. 性能好
  3. 没有级联失败

缺点:

  1. 时效性差

3、如何选择

  1. 同步:如果需要得到调用后的结果,就必须选择同步【一般查询居多】
  2. 异步:不需要即时得到调用的结果,不会影响主业务【发短信、发邮件】

4.举例

群发消息是异步,作为个人无法同时手动操作多个手机给每个人发消息,一个人只能用一部手机给另一部手机发消息这是同步。(不是群发,群发不完全是你控制的)

2、RabbitMQ

异步调用方式其实就是基于消息通知的方式,一般包含三个角色:

  • 消息发送者:投递消息的人,就是原来的调用方

  • 消息Broker:管理、暂存、转发消息,你可以把它理解成微信服务器

  • 消息接收者:接收和处理消息的人,就是原来的服务提供方
    1、安装broker
    2、架构图

  1. Broker:消息中转站,MQ服务器
  2. VirtualHost:虚拟主机,具备隔离效果的一个空间,管理消息的平台。
  3. exchange:交换机,用来根据指定规则进行消息的路由具体的队列,交换机没有存储信息的能力
  4. queue:队列,具备存储消息的容器
  5. Publisher:消息生产者,用来生产与发送消息的角色
  6. Consumer:消息消费者,用来消费消息的角色-接收信息
posted @   RuSuanJun22310  阅读(12)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示