RocketMQ学习1 概念简介+安装运行
这里写自定义目录标题
简介
定义
RocketMQ是一款分布式消息中间件,主要用于解决分布式系统中通信和数据处理问题,在不同场景下有着不同的作用。最开始是阿里巴巴内部开发出来使用的工具,后续提交到Apache上孵化。
在官网中,对最新版的5.0
版本的定义是: RocketMQ 5.0:云原生“消息、事件、流”实时数据处理平台,覆盖云边端一体化数据处理场景。
官网首页中,列举的几大核心特性,分别是:云原生,高吞吐,流处理,金融级,架构简单,生态友好。
而在我们平常的项目中,它通常可以用来起到如下的作用:
- 业务解耦: 通过发布/订阅(Publish/Subscribe)模型,生产者无需关心消费者的实现细节,只需要将消息发送到指定的主题(Topic),消费者根据自己的需求订阅这些主题并处理消息。这样可以降低不同服务之间的直接依赖,使得各个模块独立扩展和维护。
- 异步处理:允许任务异步执行,提高响应速度。例如,在订单系统中,下单操作完成后可以通过RocketMQ发送一个异步消息给库存系统去更新库存,用户无需等待库存系统的响应就能得到下单成功的反馈。
- 削峰填谷:当服务端短时间内收到大量请求时,RocketMQ可以作为缓冲区暂存请求,避免服务因瞬时流量高峰而崩溃,同时让后端服务可以根据自身的处理能力以更稳定的速率消费消息。
- 流量控制与负载均衡:通过队列机制实现消息的有序、批量或者延迟投递,并且支持在多个消费者之间进行负载均衡,确保整个系统的稳定性和可用性。
- 事务消息:RocketMQ支持分布式事务消息,能够保证在分布式环境下,如果业务操作和消息发送一并成功或都失败,则保持最终一致性。
- 监控与报警:内置丰富的运维监控工具,支持对消息堆积、消息延迟等指标的实时监控,并在出现问题时触发报警,以便及时人工介入处理。
总结来说,RocketMQ作为一种高效的消息中间件,是构建高并发、高性能、高可用分布式系统的重要基础设施之一。
与其它常见产品的对比
官方文档中,也给出了RocketMQ与市面上常用的相关产品的对比表格,我们可以观察到,RocketMQ各方面上,支持的都比较到位:
Messaging Product | Client SDK | Protocol and Specification | Ordered Message |
---|