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 @ 2024-10-14 21:10  RuSuanJun22310  阅读(29)  评论(0)    收藏  举报