什么是优秀的消息队列
从消息队列的产生背景来看,消息队列最大的特点应是解耦、异步、削峰,也就是说传统项目部署方案已经无法应对大数据量的请求访问,往往会导致系统崩溃。而过去耦合度较高的项目更是一崩全崩,这个时候就需要一款产品用来削峰,解耦,保证业务系统的稳定运行。那么从这个角度来看的话,优秀的消息队列一定是可靠的、面向队列的、可扩展的、高性能的,当然分布式的架构就更能保证业务的正常运行,同时保证消息队列自身的稳定运行。
云消息队列RocketMQ
首先来说一下什么是云消息队列RocketMQ
什么是云消息队列RocketMQ
消息队列 RocketMQ 版是阿里云基于 Apache RocketMQ 构建的低延迟、高并发、高可用、高可靠的分布式消息中间件。消息队列 RocketMQ 版既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。想要了解更多核心概念、消息收发模型、适用场景等可以点击进入查看。
实验室体验
关于云消息队列RocketMQ,个人在实验室环境下手动部署过,也尝试了消息收发的测试,实验室体验地址:RocketMQ中使用Java客户端发送消息和消费的应用 体验效果日志打印比如
另外我们可以通过RocketMQ的可观测页面,可以观测到已经生产的消息以及消息的消费数据
这样就方便在业务运行过程中及时的观测到消息的收发及消费情况,便于当出现问题时及时的发现并解决。
云消息队列RocketMQ特点
云消息队列RocketMQ支持并发消息,意思是生产者可以并发的向topic中发送消息, 消费端不区分顺序的消息,这种模式效率最好。并且RocketMQ同样也支持发送和消费顺序消息,但是顺序消息牺牲了可用性,单节点故障会直接影响顺序消息。其中印象最深刻的是RocketMq支持发送事务消息,通常情况下大家对于关系型数据库的喜爱多数也是因为支持事务,现在有一款性能强大,可拓展性好,实时性高的消息队列,并且还支持事务,真的很出色。
事务消息流程图如图
写在最后
最后RocketMQ支持多种负载均衡和高可用性方案,支持点对点、推送模式、拉模式、瀑布模式等多种消息传输方式,作为云消息队列,使用者无需考虑RocketMQ消息队列的维护,而可以专心投入的业务中去,对业务的拓展也是很友好的,因此无论什么样的业务场景,只要你需要消息队列,那么云消息队列RocketMQ都将是你不错的选择。