初识RabbitMq

目录

​编辑

1.MQ

1.1MQ?

1.2 mq的作用

2.常见的几种MQ实现

3.参考


1.MQ

RabbitMq可以分为两部分 rabbti 和 mq,rabbit指的是公司名、mq指的是消息队列(message queue)

1.1什么是MQ

消息队列(mq)是一种在应用程序之间传递消息的通信模式。它通常由生产者发送消息到队列(先进先出),然后再由消费者进行消费。

1.2 mq的作用

1. 应用解耦 

现在有一个分布式的商城项目:它的支付服务的业务流程是 调用用户服务完成余额扣减,调用订单服务完成订单信息更新。

现在如果业务经理要求在支付成功后给用户发短信提示,那么就在支付服务中在添加调用信息服务就行了。

当是如果业务经理第二天要求,支付成功后添加积分服务,第三天要求不发短信了要发邮箱。此时整个代码就变得很臃肿。而且短信服务发生故障,可能导致整个支付服务的回滚,这显然是不好的。

那么此时我们可以在调用完用户服务后,使用消息队列发布一条消息:调用用户服务扣减余额完成了!。短信服务,订单服务进行订阅,订阅到这条信息后 短信服务,订单服务就开始执行。这样如果后面再添加服务,只要通过订阅信息的方式来执行不就可以解决支付服务臃肿的问题了。

2.异步提速

通过上面的应用解耦其实就完成了异步提速了,因为支付服务中的相关服务已经是一种并行执行的状态了。

总时间:20ms+20ms+20ms+20ms = 80ms

使用mq:

总时间:20ms + 20ms = 40ms

3. 削峰填谷

当某一时间段,比如双十一等节日请求突然暴增,这时如果使用了mq,那么消息队列机会把这些请求缓存下来,然后再根据它的自身拉取能力进行消费。

2.常见的几种MQ实现

RabbitMqActiveMqRocketMqKafka
公司/社区Rabbit Apache阿里Apache
开发语言ErlangJavaJavaScala&Java
协议支持AMQP,XMPP,SMTP,STOMPOpenWire,STOPMP,XMPP,AMQP自定义协议自定义协议
可用性一般
单机吞吐量一般非常高
消息延迟微妙级毫秒级毫秒级毫秒以内
消息可靠性一般一般

追求可用性:Kafka、 RocketMQ 、RabbitMQ

追求可靠性:RabbitMQ、RocketMQ

追求吞吐能力:RocketMQ、Kafka

追求消息低延迟:RabbitMQ、Kafka

3.参考

01-初探MQ-MQ的三大使用场景:应用解耦、异步提速、削峰填谷_mq削峰填谷-CSDN博客

MQ基础-03.初识MQ-异步调用_哔哩哔哩_bilibili

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值