聊聊RabbitMQ

RabbitMQ是一个开源的消息中间件。

如果没有RabbitMQ,系统A直接把数据传给系统B,这样当B忙不过来或者挂了的时候,A就会卡死或者造成数据丢失。

但是,如果有了RabbitMQ,系统A可以把数据传给RabbitMQ,而RabbitMQ则负责把数据暂存起来,再按照系统B的处理能力,稳稳地传送给B。

RabbitMQ主要有3大应用场景:

1.比如在实现用户注册功能时,通过引入RabbitMQ进行异步处理,可以提升响应的速度:

没有引入RabbitMQ时,在注册完之后,需要同步地发邮件和短信,这样用户可能需要等几秒钟才能看到"注册成功"。

引入RabbitMQ之后,把注册的信息写入数据库之后,可以直接把"发送邮件"和"发送短信"这两个任务扔给RabbitMQ,这样就能够立刻给用户返回"注册成功"。

2.我们平常网购的时候,应该也会注意到,买东西的次数多了,某宝或者某东、某多的积分也会相应增加。

这也就是下单场景的积分累加。

想象一下如果订单系统直接调用积分接口,一旦积分系统挂了,那订单也下不了了。

有个大佬说过这样一句话:

没有什么是加一层中间层不能解决的,如果有,那就再加一层。

所以,中间加个RabbitMQ,这样订单系统只需要把"我要下单"的消息发送给RabbitMQ,而积分系统什么时候恢复那就什么时候再去取消息,从而累加积分。

通过这样引入RabbitMQ,可以实现应用之间的解耦,从而降低系统的依赖。

3.在双十一的秒杀场景下,通常会有几百上千万的请求在一瞬间涌进来,这个时候数据库可能就直接崩了。

通过引入RabbitMQ,先把请求全部扔进RabbitMQ排队,后台系统再按照自己的节奏从RabbitMQ中拉取请求进行处理,从而实现流量削峰,保护数据库的作用。

相关推荐
CodeGL6 小时前
开源的分布式任务调度平台:XXL-Job
分布式·开源
一条泥憨鱼15 小时前
【Kafka】零基础学习教程
java·分布式·学习·kafka
贾伟康17 小时前
【共创稿事节】HarmonyOS 7.0 HiTraceChain分布式调用链:从接入到生产验证
分布式·harmonyos·可观测性·调用链·hitracechain
NiceZack2 天前
Hadoop 部署全流程教程:从新装 CentOS 到伪分布式与完全分布式
hadoop·分布式·centos
傻啦嘿哟2 天前
分布式爬虫架构:Redis+Scrapy打造企业级爬虫系统
分布式·爬虫·架构
starzy19902 天前
Kafka请求进门口:Processor是怎么把请求读上来的
分布式·kafka
骑着蜗牛撵大象3273 天前
558 万美元训出 671B 模型:DeepSeek-V3 算法与系统的协同拆解
分布式·算法·moe·deepseek-v3·mla·fp8训练
德迅云安全-上官3 天前
德迅游戏盾:面向 TCP 业务的分布式云安全防护方案
分布式·tcp/ip·游戏
未秃头的程序猿3 天前
@ConditionalOnMissingBean 把我配好的 RabbitMQ 手动 ack 吃掉了
后端·rabbitmq
麻瓜code3 天前
分布式锁演进:从一个用户下两单,到 Redisson,我改了四版
分布式·wpf