美文网首页
二、RocketMQ 介绍

二、RocketMQ 介绍

作者: 一直想上树的猪 | 来源:发表于2019-12-20 14:48 被阅读0次

一、简介

消息队列 RocketMQ 是阿里巴巴集团基于高可用分布式集群技术,自主研发的云正式商用的专业消息中间件,既可为分布式应用系统提供异步解
耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性,是阿里巴巴双 11 使用的核心产品。
RocketMQ 的设计基于主题的发布与订阅模式,其核心功能包括消息发送、消息存储(Broker)、消息消费,整体设计追求简单与性能第一。

  1. NameServer 设计及其简单,RocketMQ 摈弃了业界常用的Zookeeper充当消息管理的“注册中心”,而是使用自主研发的 NameServer 来实现各种元数据的管理(Topic路由信息等)
  2. 高效的 I/O 存储,RocketMQ追求消息发送的高吞吐量,RocketMQ 的消息存储设计成文件组的概念,组内单个文件固定大小,引入了内存 映射机制,所有主题的消息存储基于顺序读写,极大提高消息写性能,同时为了兼顾消息消费与消息查找,引入消息消费队列文件与索引文件
  3. 容忍存在设计缺陷,适当将某些工作下放给 RocketMQ 的使用者,比如消息只消费一次,这样极大的简化了消息中间件的内核,使得 RocketMQ的实现发送变得非常简单与高效。
    RocketMQ 原先阿里巴巴内部使用,与 2017 年提交到 Apache 基金会成为 Apache 基金会的顶级开源项目,GitHub 代码库链接:https://github.com/apache/rocketmq.git
    RocketMQ 的官网 http://rocketmq.apache.org/

二、核心概念

核心
NameServer
  • NameServer是整个RocketMQ 的“大脑”,它是RocketMQ的服务注册中心,所以 RocketMQ 需要先启动 NameServer再启动 Rocket 中的 Broker。
  • Broker 在启动时向所有 NameServer 注册(主要是服务器地址等),生产者在发送消息之前先从 NameServer 获取 Broker 服务器地址列表(消 费者一样),然后根据负载均衡算法从列表中选择一台服务器进行消息发送。
  • NameServer 与每台 Broker 服务保持长连接,并间隔 30S 检查 Broker 是否存活,如果检测到 Broker 宕机,则从路由注册表中将其移除。这样 就可以实现 RocketMQ 的高可用。
主题

主题,Topic,消息主题,一级消息类型,生产者向其发送消息。消费者负责从 Topic 接收并消费消息。

生产者

生产者:也称为消息发布者,负责生产并发送消息至 Topic。

消费者

消费者:也称为消息订阅者,负责从 Topic 接收并消费消息。

消息

消息:生产者或消费者进行消息发送或消费的主题,对于 RocketMQ 来说,消息就是字节数组。

三、整体流程

  • NameServer 先启动
  • Broker 启动时向 NameServer 注册
  • 生产者在发送某个主题的消息之前先从NamerServer获取Broker服务器地址列表(有可能是集群),然后根据负载均衡算法从列表中选择一台 Broker 进行消息发送。
  • NameServer 与每台 Broker 服务器保持长连接,并间隔 30S 检测 Broker 是否存活,如果检测到 Broker 宕机(使用心跳机制,如果检测超过120S),则从路由注册表中将其移除。
  • 消费者在订阅某个主题的消息之前从NamerServer获取Broker服务器地址列表(有可能是集群),但是消费者选择从Broker中订阅消息,订阅规则由 Broker 配置决定。

相关文章

  • RocketMQ学习

    RocketMQ深度解析RocketMQ之一:RocketMQ整体介绍RocketMQ之二:分布式开放消息系统Ro...

  • 二、RocketMQ 介绍

    一、简介 消息队列 RocketMQ 是阿里巴巴集团基于高可用分布式集群技术,自主研发的云正式商用的专业消息中间件...

  • Windows 安装 RocketMQ

    一、RocketMQ 介绍 1、消息顺序2、消息重复消费3、事务消息 二、RocketMQ 安装 Windows:...

  • 二、RocketMQ架构介绍

    概述 Apache RocketMQ是一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性,万亿级容量和灵活...

  • rocketMq概念介绍

    rocketMq官网 http://rocketmq.apache.org/ rocketMq逻辑概念介绍 备注:...

  • Apache Kafka 基础介绍

    Apache Kafka 基础介绍 介绍完RocketMQ,就不得不介绍一下kafka,RocketMQ就是照着k...

  • Apache RocketMQ 的基础特性介绍

    Apache RocketMQ 的基础特性介绍 Apache RocketMQ 系列: Apache Rocket...

  • RocketMQ-基础使用(一)

    零、本文纲要 一、RocketMQ基础 MQ特点 RocketMQ安装 测试RocketMQ 二、RocketMQ...

  • RocketMQ介绍

    RocketMQ介绍 RocketMQ介绍什么是消息队列产品功能功能概览图多协议支持管理工具特色功能专有云部署消息...

  • RocketMQ介绍

     消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。Apac...

网友评论

      本文标题:二、RocketMQ 介绍

      本文链接:https://www.haomeiwen.com/subject/txcinctx.html