一、简介
消息队列中间件(简称MQ)是指利用高效可靠的消息传递机制进行与平台无关的数据交流, 并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型, 它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能, 其作为分布式系统架构中的一个重要组件,有着举足轻重的地位。
RocketMQ是一套分布式消息和流处理平台, 提供了低延迟、高吞吐量、高可靠、海量堆积、灵活横向扩展能力。
1.支持常见的消息发布订阅、request/reply(同步通讯)、流式处理模型
2.金融级别的事务消息
3.可靠的FIFO队列和严格的顺序消息支持
4.高效的批量消息发送机制
5.多语言支持
6.内置的消息追踪能力
7.高性能的pull/push模型
8.海量的消息堆积能力
9.灵活的分布式横向扩展部署架构
10.支持MQ端的消息过滤机制, 包括TAG(子主题)和类SQL92表达式过滤
11.功能丰富的管理端界面,灵活的消息查询方式
12.鉴权和TLS安全访问
二、RocketMQ架构
2.1基本架构
2.2 基本概念
- NameSrv
充当路由信息的提供者。生产者或消费者能够通过NameSrv查找各主题相应的BrokerIP列表。 - Broker集群
一个多个Broker组构成一个Broker集群,不同Broker组之间从实现除了集群名相同,没有过多的关联, 但建议主题创建时,以集群为单位, 从而简化运维成本,方便进行横向扩容。 - Broker组
多个Broker结点的集合。一个Broker组下只有一个主节点和多个从结点(可以没有从节点), 主从结点之间将会进行同步。 - Broker结点
负责存储消息、转发消息。其中只有主节点会存储消息。 - 生产者Producer
是MQ场景下的一个逻辑概念,主要表示生成MQ消息并将消息发布到MQ中的角色。 一般由业务系统负责生产消息