为啥用mq,rabbitmq的特点

rabbitMQ

MQ 是什么?队列是什么,MQ 翻译为消息队列,又叫中间件,就是别人写好的配件,在访问服务器之间岸上队列我们可以理解为管道。以管道的方式做消息传递。

  • .其实我们在双11的时候,当我们凌晨大量的秒杀和抢购商品,然后去结算的时候,就会发现,界面会提醒我们,让我们稍等,以及一些友好的图片文字提醒。而不是像前几年的时代,动不动就页面卡死,报错等来呈现给用户。

在这业务场景中,我们就可以采用队列的机制来处理,因为同时结算就只能达到这么多。一瞬间全结账那不乱套了,“想挑战的人排好队,一个一个来”。

这东西是消息中间件,就是为了解耦、异步、削峰

解耦:

  • 系统间耦合性太强,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!
  • 系统A将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而生产者系统不需要做任何修改。

异步

  • 一些非必要的业务逻辑以同步的方式运行,太耗费时间。是异步操作,一些操作并行。

削峰

  • 高峰期所有的请求直接怼到数据库,造成数据库连接异常
  • 系统A慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息。

ActiveMQ,kafka都是JMS

AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。

RabbitMQ里的几个重要概念:

  • 生产者(Producer):发送消息的应用。

  • 消费者(Consumer):接收消息的应用。

  • 交换机(Exchange):交换机负责从生产者那里接收消息,并根据交换类型分发到对应的消息列队里。要实现消息的接收,一个队列必须到绑定一个交换机。

  • 队列(Queue):存储消息的缓存。

  • 绑定(Binding):绑定是队列和交换机的一个关联连接。

  • 路由键(Routing Key):路由键是供交换机查看并根据键来决定如何分发消息到列队的一个键。路由键可以说是消息的目的地址。

  • 消息(Message):由生产者通过RabbitMQ发送给消费者的信息。

  • 连接(Connection):连接RabbitMQ和应用服务器的TCP连接。

  • 通道(Channel):连接里的一个虚拟通道。当你通过消息队列发送或者接收消息时,这个操作都是通过通道进行的。在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值