一、rocketmq简介
- rocketmq是一款分布式、队列模型的消息中间件,由阿里巴巴研发借鉴参考了JMS规范MQ实习,更参考了优秀的开源消息中间件kafka,并结合阿里巴巴的实际业务需求,在天猫双十一的场景,实现业务消峰,分布式事务的优秀框架。
- 底层代码编写清晰优秀,采用Netty NIOl框架实现数据通信。
- 3.X版本弃用Zookeeper,内部使用更轻量级的NameServer进行网络路由,提供了服务性能,并支持消息失败重试机制。
- 支持集群模式、消费者负载均衡、水平扩展能力,支持广播模式。
- 采用零拷贝原理,顺序写盘、支持亿级消息堆积能力。
- 提供丰富的消息机制,比如顺序消息、事务消息。
二、核心概念讲解
1.专业术语
- Producer: 消息生成者,负责消息产生,由业务系统负责产生。
- Consumer:消息消费者,负责消费消费,由后台业务系统负责异步消费。
- Push Consumer:Consumer的一种,应用通常向Consumer对象注册一个Listener接口,一旦接收到消息,Consumer对象立刻回调Listener接口方法。
- Pull Consumer:Consumer的一种,应用通常主动调用Consumer的拉消息方法从Broker拉消息,主动权由应用控制。
- Producer Group:一类producer的集合名称,这类Producer通常发送一类消息,且发送逻辑。
- Consumer Group:一类Consumer的集合名称,这类Consumer通常消费一类消息,且发送逻辑。
- Broker:消息中转角色,负责存储消息,转发消息,一般也称为Server。
- 集群消费:一个Consumer Group中的Consumer实例平均分摊消费消息。例如某个Topic有9条消息,其中一个Consumer Group有3个 实例(可能是3个进程或3台机器),那么每隔实例只消费其中的3条消费。
- 广播消费:一条消息被多个Consumer消息,即使这些 Consumer属于同一个 Consumer Group,消息也会被Consumer Group中的每隔 Consumer都消费一次。
- 顺序消费:指消息的消费顺序和产生顺序相同,在有些业务逻辑 下 ,必须保证顺序。比如订单的生成、付款、发货,这3个消息必须按顺序处理才行。
三、rocketmq应用场景
四、rocketmq可视化管理控制台代建
1. 下载开源的rocketmq-externals项目:https://github.com/apache/rocketmq-externals
2. 找到rocketmq-console,先编辑一下rocketmq-c