RabbitMQ、Kafka、RocketMQ正确选型姿势【消息中间件篇】

本文探讨了消息中间件在系统性能提升、解耦和流量削峰等方面的作用,并对Kafka、RabbitMQ和RocketMQ进行了对比分析。Kafka以其高吞吐量但可能的数据丢失为特点,适合日志处理;RabbitMQ注重数据不丢失和高可用,适用于平稳业务;RocketMQ结合两者优点,适合大规模、高性能需求且支持Java技术栈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家想一想在你们平时开发的系统里面有没有这种情况,就是你们系统会调用到第三方接口服务,而且这个接口服务是在你流程里面进行同步调用的,这个时候你们的系统性能是直接和第三方接口服务挂钩的,也就是第三方接口服务性能的好坏直接影响到你自己的系统。

我想大部分人都遇到过这样的系统调用吧,我们公司也经常遇到,合作商给的接口,就直接同步调用了,上个月我们有一个第三方接,开始组员调研时没太仔细,以为对于我们业务影响不是太大,就采用了直接同步调用,以至于线上运行两周后内存增长迅速,性能吞吐量逐渐下降,后来发现是因为三方接口性能支撑不住我们现有并发。如是就改成了异步,使用我们的消息中间件MQ来解决此类情况,那么今天我们就先来聊聊相关中间件的必经之路,即调研和如何取舍的话题

 

什么是消息中间件

说到消息中间件,我想大家应该并不陌生,或多或少都有所接触。其实通俗的理解就是,消息中间件MQ也就是一种开发好的系统,并且独立部署,然后我们业务系统通过它来发消息和收消息以至于达到异步调用的效果。

 

消息中间件有什么用处

消息中间件既然被发明出来,肯定是有诸多好处的,是能解决我们实际问题的,对我们开发最直接的影响就是提升系统性能、系统间解耦、流量削峰等,下面分别对其解释下,方便大家更好的去理解MQ。

 

1,异步化提升系统性能

现在假设有两个系统A和B,其中A系统处理业务大概20毫秒,B系统处理业务大概180毫秒,然后A系统调用B系统这一过程一共是花了200毫秒。如果这里使用了消息中间件的话,则是A系统处理业务20毫秒,发送消息到MQ中2毫秒然后就直接返回给用户了,B系统什么时候去MQ中取消息A系统此时是不管的,所以对于用户来说22毫秒就得到了返回,即使用MQ直接提升了我们系统的性能。

 

2,系统间解耦

如上A B系统所示,即使B系统出现了故障,于A系统来说是不关心的,即用户也就是无感知的,B系统恢复了就会自动再去取消息来处理业务。所以,消息中间件能使系统间解耦,且使系统间不互相直接影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构师修炼

你看着干啥

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值