1.RabbbitMQ是什么?
就是消息列队,是在消息的传输过程中保存消息的容器多用于分布式系统之间的通信。本质上就是帮我们解决通信问题,消息存放的问题,用户不能即使收到信息,这时候就用到了MQ。
2.MQ的优势
异步,解耦,削峰
1.解耦
藕:系统之间的耦合度越高,容错率低,可维护性就低,
这个时候使用MQ是的应用解耦,提升容错性和可维护性,例:订单系统通过MQ一 一对应,进行处理。
2.异步:提速
为解决提升用户体验和系统吞吐量(单位时间内处理请求的数目)
3.削峰
削峰填谷:把谋一时间的高并发请求,MQ给他平均分为了几部分,在MQ里面排队,维持在某一部分,知道消息挤压,提高系统稳定性
3劣势
1.系统可用性降低:系统引入外部数据依赖越多,系统的稳定性越差,一旦MQ宕机,就会对业务造成影响
解决方式:如何解决高可用:搭建集群
2.系统复杂度提高:MQ加入增加了系统的复杂度,以前系统之间都是同步远程调用,现在是通过MQ异步调用(如何保证消息不被丢失等情况?)
4.常见的MQ产品
RabbitMQ:万级,微妙
ActiveMQ:MQ,毫秒
RocketMQ:十万级,毫秒,阿里巴巴家的,与cloud Alibaba最为适配
kafka:十万级,毫秒内
5.RabbitMQ的概念
架构流程:首先是生产者通过连接,连接到MQ,他要和从MQ进行通信,他就要在连接里创建信道,然后就有了信道,然后通过创建好的信道把消息发给虚拟机里的交换机,然后交换机在吧这个消息给到队列,队列就是我们最终存放消息的地方。同时,我们的消费者也创建了一个和MQ的连接,然后在连接里创建了信道,然后通过信道吧队列里面的信息给拿出来进行一个消费。
6.RabbitMQ的通讯
官网:RabbitMQ Tutorials | RabbitMQ
在官网中学习文档中给介绍了6种通讯方式
1.简单模式
2.工作队列
3.发布订阅
4.路由模式
5.主题模式
6.远程调用