RocketMQ介绍

一、RocketMQ 介绍

  • RocketMQ 是一款分布式、队列模型的消息中间件,由阿里巴巴研发。
  • 底层采用 Netty NIOl 框架实现数据通信。
  • 3.X 版本弃用 Zookeeper,内部使用更轻量级的 NameServer 进行网络路由,提供了服务性能,并支持消息失败重试机制。
  • 支持集群模式、消费者负载均衡、水平扩展能力,支持广播模式。
  • 采用零拷贝原理,顺序写盘、支持亿级消息堆积能力。
  • 提供丰富的消息机制,比如顺序消息、事务消息。

二、使用场景

  • 应用解耦

  • 流量削峰

  • 消息分发

  • 最终一致性

  • 动态扩容

三、架构

  • Producer
* 消息生产者,负责产生消息,一般由业务系统负责产生消息。   
  • 3.2 Consumer
* 消息消费者,负责消费消息,一般是后台系统负责异步消费。
  • NameServer
* 无状态节点,用来保存活跃的 broker 列表,和 topic 列表。
* 可集群部署,节点之间无任何信息同步,通过 Broker与每个 NameServer 连接,可以保证信息同步性。
  • Broke
* 消息中转角色,负责存储消息,转发消息。
* 拥有 Master、slave(主备)的概念,主备有同步复制、异步双写功能来保持数据同步 
* 标识:Master的 BrokerId 为 0 ,Slave 的 BrokerId 非0。  
* 部署模式:
	* 单 Master 无 Slave(脆弱)
	* 单 Master 多 Slave(单点故障就瘫,开源版无主备切换功能)
	* 多 Master 无 Slave(无单点故障,线上生产常用模式)
	* 多 Master 多 Slave(无单点故障)
  • topic
消息的逻辑管理单位。

四、工作流程

posted @ 2020-03-21 09:35  MarkLogZhu  阅读(249)  评论(0编辑  收藏  举报