RocketMQ技术全面解析(概念、设计理念与目标、信息发送、同步发送--含代码!)

RocketMQ是阿里巴巴的开源消息中间件,提供高吞吐、可靠消息传递,采用主题发布订阅模式。核心概念包括NameServer、主题、生产者、消费者和消息。设计理念强调简单和性能,目标包括消息的顺序存储和高可用。消息发送有单向、同步和异步三种方式。NameServer作为服务注册中心,维护Broker信息。RocketMQ还支持消息过滤、顺序消息和消息回溯。
摘要由CSDN通过智能技术生成

在这里插入图片描述在这里插入图片描述

1.RocketMQ 介绍

消息队列 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/

MQ:消息中间件是什么?
消息中间件属于分布式系统中一个子系统,关注于数据的发送和接收,利用高效可靠的异步消息传递机制对分布式系统中的其余各个子系统进行集成

2.核心概念

image.png

2.1NameServer

NameServer 是整个 RocketMQ 的“大脑”,它是 RocketMQ 的服务注册中心,所以 RocketMQ需要先启动 NameServer 再启动 Rocket 中的 Broker

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

2.2主题

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

2.3生产者

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

2.4消费者

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

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值