简介
Apache RocketMQ是一个采用Java语言开发的分布式的消息系统,由阿里巴巴团队开发,与2016年底贡献给 Apache,成为了Apache的一个顶级项目。
在阿里内部,RocketMQ 很好地服务了 集 团大大小小上千个应用,在每年的双十一当天,更有不可思议的万亿级 消息通过 RocketMQ 流转(在 2017 年的双十一当天,整个阿里巴巴集团通过 RocketMQ 流转的线上消息达到了 万 亿级,峰值 TPS 达到 5600 万),在阿里大中台策略上发挥着举足轻重的作用 。
地址:http://rocketmq.apache.org/
历史发展
- 阿里巴巴消息中间件起源 于 2001 年的五彩石项目, Notify 在这期间应运而生,用于交易核心消息的流转
- 2010 年, B2B 开始大规模使用 ActiveMQ 作为消息内核,随着阿里业务 的快速发展,急需一款支持顺序消 息,拥有海量消息堆积能力的消息中间件, MetaQ 1.0 在 2011 年诞生 。
- 2012年, MetaQ已经发展到了3.0版本,并抽象出了通用的消息引擎 RocketMQ。 随后,对 RocketMQ 进行 了开源 , 阿里的消息中间件正式走人了 公众视野 。
- 2015年, RocketMQ已经经历了多年双十一的洗礼,在可用性、 可靠性以 及稳定性等方面都有出色的表现。 与此同时 ,云计算大行其道, 阿里消息中间 件基于 RocketMQ推出了 Aliware MQ 1.0,开始为阿里云上成 千上万家企业提 供消息服务 。
- 2016 年, MetaQ 在双十一期间承载了万亿级消息的流转,跨越了一个新的里程碑 ,同时 RocketMQ 进入
Apache 孵化 。
核心概念说明
Producer
- 消息生产者,负责产生消息,一般由业务系统负责产生消息。
- Producer Group :一类 Producer 的集合名称,这类 Producer 通常发送一类消息,且发送逻辑一致。
Consumer
- 消息费者,负责消费消息,一般是后台系统负责异步消费。
- Push Consumer :服务端向消费者端推送消息
- Pull Consumer :消费者端向服务定时拉取消息
- Consumer Group 一类 Consumer 的集合名称,这类 Consumer 通常消费一类消息,且消费逻辑一致。
NameServer
- 集群架构中的组织协调员
- 收集broker的工作情况
- 不负责消息的处理
Broker
- 是RocketMQ的核心负责消息的发送、接收、高可用等(真正干活的)
- 需要定时发送自身情况到NameServer,默认10秒发送一次,超时2分钟会认为该broker失效。
Topic
- 不同类型的消息以不同的Topic名称进行区分,如User、Order等
- 是逻辑概念
- Message Queue :消息队列,用于存储消息