RabbitMQ

前言

一、MQ是什么?

用高效可靠的消息机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信。

二、为什么要用MQ?

1.解耦
    

如上图所示,可以将各个系统之间的交互拆开,通过消息队列去做访问,也就是实现了系统之间的解耦。

2.削峰

当某一时刻的访问量急剧增加的时候,如淘宝双十一,秒杀活动等。在一个时段有大量的访问者,可能会导致服务器处理不过来,导致服务器宕机。但是通过MQ去做处理的话,就不会出现突然间的大量数据的涌入,而是根据MQ的处理机制,以该有的速度匀速发布给各个处理服务器,也就保证了服务器的处理保持相对稳定的状态。

3.异步通信

通过MQ实现异步通信,提高用户的体验,以及效率,无需同步通信,一直等待,直到获取结果,才可以进行下一条数据的处理。

 

三、带来的问题

    1.如果MQ挂了那么整个系统就不能用了
    2.复杂度提高了
    3.消息在链路中会出现一致性问题

 


提示:以下是本篇文章正文内容,下面案例可供参考

一、RabbitMQ的基本特性

高可靠、灵活路由、支持多客户端、集群与扩展性、高可用队列、权限管理、插件系统、与Spring集成Spring AMQP等等。

二、工作模型


    
    1、broker:中间件(MQ)、存储转发
    2、Connection: TCP长连接,长连接比较消耗性能,所以用在TCP里面用channel(虚拟信道)
    3、Queue:真正存储东西的,有自己的进程
    4、基于实践,对队列进行监听,只要有数据到达队列,就会去消费消息,并返回一个应答,queue删除取走的消息,并推送下一条 
    5、RabbitMQ的消息会先发送到交换机,而不会直接发送到queue,Exchange是以绑定列表,与队列是一个多对多的关系,交换机用来给不同的queue发送消息,依据绑定规则,与不同的队列绑定,交换器是为了灵活的分发
    6、支持虚拟主机,可以在同一个RabbitMQ,运用于多个项目,通过虚拟主机来隔离

三、Exchange路由消息


   1. Direct直连
        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值