RabbitMQ(消息队列)
b站:MQ基础-04.初识MQ-技术选型_哔哩哔哩_bilibili
基础
1.同步调用
问题:
拓展性差(调用的程序越多,拓展性越差)
性能下降(串行发送和接受消息)
级联失败(故障不隔离)
(若一个服务有问题,后面有问题)
优势:
时效性强,等待结果后才返回
2.异步调用
三个角色:
消息发送者(外卖员)——》消息代理(外卖柜)——》消息接受者(拿外卖的我)
消息代理(Broker):管理、暂存、转发消息,相当于一个小型的服务器
优势:
拓展性强
性能好(并行发送和接受消息,无需等待)
故障隔离
缓存消息,解决消息高峰问题
问题:
时效性差,不能立即得到调用结果
不确定下游业务执行是否成功
业务安全依赖消息代理的可靠性
3.MQ技术选型
MQ(MessageQueue),消息队列=异步调用的Broker(消息代理)
RabbitMQ:Rabbit公司,Erlang语言(游戏开发用的多),速度最快,消息可靠性高,最优选择
协议:AMQP, XMPP,SMTO,STOMP
ActiveMQ :Apache公司,Java语言
协议:OpenWire,STOMP,REST,XHPP,AHQP
RocketMQ:阿里公司,Java语言,消息可靠性高
自定义协议
Kafka:Apache公司,Secala&Java语言,单机吞吐量非常高
4.认识和安装
RabbitMQ整体架构及核心概念(基本介绍):
publisher:消息发送者
exchange:交换机,负责路由转发消息
queue:队列,存储消息
(exchange和queue就为RabbitMQ Server Broker(消息代理))
consumer:消息消费者
virtual-host:虚拟主机,起到数据隔离作用(如果一个RabbitMQ被多台虚拟机使用,就需要用到virtual-host来隔离,这样就互补影响)
5.快速入门
RabbitMQ中,2个用户要进行消息传输,首先需要在exchange中绑定用户,exchange负责路由转发消息,之后消息用户便可传输接受了。