一、rocketMQ是什么

rocketmq是一款低延迟、高可靠、可伸缩、已使用的消息中间件。具有以下特性:

1、支持发布/订阅、点对点(p2p)消息模型

2、同一个队列中支持先进先出(FIFO)和严格的顺序传递

3、支持拉(pull)和推(push)两种消息模式

4、单一队列百万消息的堆积能力

5、支持多种消息协议,比如: JMS 、MQTT

6、分布式高可用的不是架构,满足至少一次消息传递语义

7、提供docker 镜像用于隔离测试和云集群部署

8、提供配置、指标和监控功能丰富的Dashboard

二、专业术语

1、producer

  生产者、作用是将消息发送到MQ

2、producer group

  生产者组,多个发送同一类消息的生成者简称为一个生产者组

3、consumer

  消费者、消费MQ上的消息

4、consumer group

  消费者组,消费同一类型消息的多个consumer简称一个消费者组

5、topic

  是一种消息的逻辑分类,比如:订单相关的消息存储在一个topic中、库存相关的消息存储在同一个topic中

6、message

  是消息的载体,一个message必须指定topic,相当于寄信地址。message还可以设置一个tag 比便于消费者可以基于tag进行过滤消息

7、tag

  标签,可以被认为是对topic的进一步细化,一般在相同业务模块中通过引入标签来标记不同的用途的消息

8、broker

  是rocketMQ的系统主要角色。broker接受生成者的消息,存储以及为消费者拉取消息的请求做好准备

三、rocketMQ 架构

以上可以看出有4个集群,分别是 nameserver集群、broker集群、producer集群、consumer集群

1、nameserver集群:提供了轻量级的服务和路由,每个nameserver记录完整的路由信息,提供读写服务并且支持快速扩展。

2、broker集群:通过提供轻量级的topic和Queue机制来处理消息存储,同时支持推(push)和拉(pull)模式以及主从结构的容错机制

3、producer:生产者,产生消息的实例,拥有相同的producer Group 和produer 组成一个集群

4、consumer:消费者,接受消息的实例,拥有相同的consumerGroup 和consumer组成一个集群

简单说明一下图中箭头含义,从 Broker 开始,Broker Master1 和 Broker Slave1 是主从结构,它们之间会进行数据同步,即 Date Sync。同时每个 Broker 与
NameServer 集群中的所有节
点建立长连接,定时注册 Topic 信息到所有 NameServer 中。

Producer 与 NameServer 集群中的其中一个节点(随机选择)建立长连接,定期从 NameServer 获取 Topic 路由信息,并向提供 Topic 服务的 Broker Master 建立长连接,

且定时向 Broker 发送心跳。Producer 只能将消息发送到 Broker master,但是 Consumer 则不一样,它同时和提供 Topic 服务的 Master 和 Slave
建立长连接,既可以从 Broker Master 订阅消息,也可以从 Broker Slave 订阅消息。

最新文章

  1. [LeetCode] Find All Duplicates in an Array 找出数组中所有重复项
  2. Qt实现小功能之列表无限加载
  3. ELF Format 笔记(一)—— 概述
  4. ssh搭建后的简化
  5. 完全背包问题:湫湫系列故事――减肥记I(HDU 4508)
  6. ORACLE创建表空间、创建用户、更改用户默认表空间以及授权、查看权限
  7. 基于Web的数据推送技术(转)
  8. TCP经受时延的ACK
  9. Entity Framework 学习笔记(一)安装
  10. WCF - Self Hosting
  11. Oracle高级查询,事物,过程及函数
  12. css08盒子模型
  13. js传真实地址 C:\fakepath
  14. vim复制
  15. DNS域名解析的过程
  16. vijos1027题解
  17. MySQL表空间集
  18. HTTP请求8种方法
  19. 配置Nim的默认编译参数 release build并运行
  20. 举个栗子看如何做MySQL 内核深度优化

热门文章

  1. JasperReports入门教程(四):多数据源
  2. JavaScript type="text/template"的用法
  3. 详解 Discuz 的 PHP经典加密解密函数 authcode
  4. 【深入AQS原理】我画了35张图就是为了让你深入 AQS
  5. Leetcode PHP题解--D75 706. Design HashMap
  6. ReentrantReadWriteLock及共享锁的实现
  7. Java ArrayList工作原理及实现
  8. C++11的mutex和lock_guard,muduo的MutexLock 与MutexLockGuard
  9. 题目分享k
  10. SQLite使用(一)