mq是什么?
(message queue)存放消息的队列
队列是一种容器,mq就是存放消息的容器,把消息投递给它,你使用的时候再取,先进先出,有序性
市面上mq有好多种,常用的是rabbitmq,和kafka
同步调用是什么?
同步调用的优势是能够立刻得到响应结果,但在需要结果的场景下必须同步进行
例如-先进行扣减余额-数据库返回结果-立马执行2更新支付状态,如果扣件不成功就不执行第2步
所以导致问题大量qps访问时,性能就会变差;若再加几个给用户发通知的需求就还得继续等待响应结果,拓展性差
同步调用的优缺点
异步调用是什么?
异步调用就类似于消息代理(外卖柜)送外卖-放外卖柜-下课在去取,
同步调用就是送外卖-亲手送到手上,如果不是在在手上就无法进行下一个订单
优势
618电商开始时,庞大的支付消息拦截缓存消息,后面的服务取一个用一个,把激增的流量削峰填谷
查询逻辑查完需要有结果就不适合异步
适合什么场景:对对方经营结果不关心,订单的更新状态没成功可以慢慢更新
性能要求较高的情况,请求链路超长可以改造为异步调用
mq页面有什么?
mq地址 :ip:15672
有什么?
总览-mq节点的信息(内存/磁盘)
connection-链接消息发送者,消息接受者都需要链接
channels-频道,在频道里接收消息发送消息
exchange-交换机
queue队列
怎么发消息,得到消息呢?
消息发送者发送消息到交换机,交换机把消息路由到队列,可以路由一个,也可以路由多个,消费者监听队列(拿到消息)。
所以交换机和队列形成mq,如果要建立公司mq,就需要很多虚拟主机,将数据进行隔离
发送消息-测试
添加2个队列
交换机内发送消息-可以做测试使用模拟发送消息
交换机负责路由转发消息的,没有存储消息的能力
让路由和交换剂产生关系,进行绑定,绑定后就能收到消息,而且发送消息后每个队列都能收到(大喇叭功能)
虚拟主机可以添加可以创建
数据隔离-示例
新建一个用户在admin设置里进行新建用户-设置密码
退出后登录新的用户-创建虚拟主机-目的就是为了数据隔离
就可以选择自己的虚拟机
数据隔离-就可以看到不能进行操作