ActiveMQ/RabbitMQ/RocketMQ/Kafka/Pulsar消息中间件入门

MQ,消息队列,消息可以理解为一个业务现场,而队列则是保存这个业务现场的容器,而B服务对消息的处理,则是一个对业务现场的异步处理。所以,消息队列的本质,就是将某个业务现场暂存下来,异步处理。

有了以上对于MQ的本质认识,那么,接下来的MQ可应用的几个业务场景,就会很好理解了。

1. 异步。正如上面的demo,异步就是MQ的第一个能力。可以将一些非核心流程,如日志,短信,邮件等,通过MQ的方式异步去处理。这样做的好处是缩短主流程的响应时间,提升用户体验。

2. 解耦。假设现在,日志不光要插入到数据库里,还要在硬盘中增加文件类型的日志,同时,一些关键日志还要通过邮件的方式发送给指定的人。那么,如果按照原来的逻辑,A可能就需要在原来的代码上做扩展,除了B服务,还要加上日志文件的存储和日志邮件的发送。但是,如果你使用了MQ,那么,A服务是不需要做更改的,它还是将消息放到MQ中即可,其它的服务,无论是原来的B服务还是新增的日志文件存储服务或日志邮件发送服务,都直接从MQ中获取消息并处理即可。这就是解耦,它的好处是提高系统灵活性,扩展性。

3. 消峰。这个其实也很好理解,因为MQ的本质就是业务的排队。所以,面对突然到来的高并发,MQ也可以不用慌忙,先排好队,不要着急,一个一个来。消峰的好处就是避免高并发压垮系统的关键组件,如某个核心服务或数据库等。

异步,解耦,消峰,MQ的三大主要应用场景

消息中间件(一)MQ详解及四大MQ比较 

https://www.aboutyun.com/thread-26974-1-1.html

ActiveMQ详细入门使用教程

https://blog.csdn.net/qq_33404395/article/details/80590113

RabbitMQ快速入门(详细)

https://blog.csdn.net/kavito/article/details/91403659

RocketMQ入门教程

https://blog.csdn.net/qq_34462387/article/details/86562856

Kafka入门

https://baijiahao.baidu.com/s?id=1651919282506404758&wfr=spider&for=pc

https://blog.csdn.net/valada/article/details/79910104

pulsar

https://blog.csdn.net/tcy83/article/details/106731392

猜你喜欢

转载自blog.csdn.net/weixin_43075027/article/details/107787454