Alibaba开发十年,写出这本“MQ技术手册”,看完我愣住了

news2024/12/28 19:34:36

前言

消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。虽然说,目前状况是Kafka更为火热,但更为广泛的应该还属老牌的RabbtiMQ和Alibaba自主研发的RocketMQ。

关于MQ相关的内容,Alibaba肯定还是很有话语权的,尤其是关于RocketMQ的使用,所以今天我们要分享的内容,实际上就是阿里P8的十年开发经验总结,写出来的这本“RabbitMQ+RocketMQ”技术手册,看完你也不得不感叹这份极品手册啊!

由于文章篇幅有限,下文中的内容只展示这份手册的目录以及部分内容截图

一、RabbitMQ部分

1.RabbitMQ简介及入门

2.客户端开发向导

  • 连接RabbitMQ

  • 使用交换器和队列

  • 发送消息

  • 消费消息

  • 消费端的确认与拒绝

  • 关闭连接

3.RabbitMQ进阶

  • 消息何去何从

  • 过期时间(TTL)

  • 死信队列

  • 延迟队列

  • 优先级队列

  • RPC实现

  • 持久化

  • 生产者确认

  • 消费端要点介绍

  • 消息传输保障

4.RabbitMQ管理

  • 多租户与权限

  • 用户管理

  • Web端管理

  • 应用与集群管理

  • 服务端状态

  • HTTPAPI接口管理

5.RabbitMQ配置

  • 环境变量

  • 配置文件

  • 参数及策略

6.RabbitMQ运维

  • 集群搭建

  • 查看服务日志

  • 单节点故障恢复

  • 集群迁移

  • 集群监控

7.跨越集群的界限

  • Federation

  • Shovel

8.RabbitMQ高阶

  • 内存及磁盘告警

  • 流控

  • 镜像队列

9.网络分区

  • 网络分区的意义

  • 网络分区的判定

  • 网络分区的模拟

  • 网络分区的影响

  • 手动处理网络分区

  • 自动处理网络分区

  • 案例:多分区情形

10.RabbitMQ扩展

  • 消息追踪

  • 负载均衡

二、RocketMQ部分

1.阅读源代码前的准备

  • 获取和调试RocketMQ的源代码

  • RocketMQ源代码的目录结构

  • RocketMQ的设计理念和目标

2.RocketMQ路由中心NameServer

  • NameServer架构设计

  • NameSenver启动流程

  • NameSenve路由注册、故障剔除

3.RocketMQ消息发送

  • 漫谈RocketMQ消息发送

  • 认识RocketMQ消息

  • 生产者启动流程

  • 消息发送基本流程

  • 批量消息发送

4.RocketMQ消息存储

  • 存储概要设计

  • 初识消息存储

  • 消息发送存储流程

  • 存储文件组织与内存映射

  • RocketMQ存储文件

  • 实时更新消息消费队列与索引文

  • 消息队列与索引文件恢复

  • 文件刷盘机制

  • 过期文件删除机制

5.RocketMQ消息消费

  • RocketMQ消息消费概述

  • 消息消费者初探

  • 消费者启动流程

  • 消息拉取

  • 消息队列负载与重新分布机制

  • 消息消费过程

  • 定时消息机制

  • 消息过滤机制

  • 顺序消息

6.消息过滤FilterServer

  • ClassFilten运行机制

  • FilterServer注册剖析

  • 类过滤模式订阅机制

  • 消息拉取

7.RocketMQ主从同步(HA)机制

  • RocketMQ主从复制原理

  • RocketMQ读写分离机制

8.RocketMQ事务消息

  • 事务消息实现思想

  • 事务消息发送流程

  • 提交或回滚事务

  • 事务消息回查事务状态

9.RocketMQ实战

  • 消息批量发送

  • 消息发送队列自选择

  • 消息过滤

  • 事务消息

  • Spring整合RocketMQ

  • Spring Cloud整合RocketMQ

  • RocketMQ监控与运维命令

  • 应用场景分析

总结

实际上一般业务系统之间通信就是会采用RabbitMQ/RocketMQ,需要复杂的消息路由功能的支撑。大数据的实时计算场景才会采用Kafka,需要简单的消费模型,但是超高的吞吐量。

所以,作为Java开发,以RabbitMQ和RocketMQ为主来进行学习是比较重要的。最后,你再试问一下自己,对MQ到底掌握多少?会用到什么程度了呢?如果还不够,那就不能停下学习的脚步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/502927.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android WebRtc+SRS/ZLM视频通话(2):安装SRS

Android WebRtcSRS/ZLM视频通话(2):安装SRS 来自奔三人员的焦虑日志 接着上一章内容,继续来安装开源流媒体系统(SRS),可以按官方教程或者直接问ChatGPT安装教程,又或者百度一下照着大…

别开玩笑了!特种兵式旅游,胆小勿进!

【大学生特种兵旅游】是什么梗? 最近在多御浏览器上看新闻的时候看到一个热梗【大学生特种兵旅游】这又是什么梗!!!老阿姨震惊了! 我随即搜索了一下,看到了下面这段介绍: 近日,“特种…

【SpringBoot集成Nacos+Dubbo】企业级项目集成微服务组件,实现RPC远程调用

文章目录 一、需求环境/版本 二、须知2.1、什么是RPC?2.2、什么是Dubbo?2.3、什么是Nacos? 三、普通的SpringBoot项目集成微服务组件方案(笔者给出两种)方案一(推荐)1、导入maven依赖&#xff0…

rocketmq4.9.4 docker安装

rocketmq4.9.4 给对应的路径赋权 chmod -R 777 文件名 不然启动可能报错后者看不到容器日志 systemctl status firewalld 查看防火墙状态 https://www.jianshu.com/p/0c1c3c679ef8 Docker部署RocketMQ(4.9.4)官方镜像和控制台windows、mac、linux全平…

20230508在Ubuntu22.04下使用python3批量转换DOCX文档为TXT

20230508在Ubuntu22.04下使用python3批量转换DOCX文档为TXT 2023/5/8 16:27 在WIN10下请参考本文,在Ubuntu22.04下需要不通的插件! https://blog.csdn.net/weixin_46255747/article/details/129961988 python实现批量docx转txt docx文档放到input目录中。…

Origin如何绘制二维图形?

文章目录 0.引言1.函数绘图2.线图3.符号图4.点线符号图5.柱状/条形/饼图6.多面板/多轴图7.面积图8.专业图9.主题绘图 0.引言 因科研等多场景需要绘制专业的图表,笔者对Origin进行了学习,本文通过《Origin 2022科学绘图与数据》及其配套素材结合网上相关资…

stable diffusion模型讲解

AI模型最新展现出的图像生成能力远远超出人们的预期,直接根据文字描述就能创造出具有惊人视觉效果的图像,其背后的运行机制显得十分神秘与神奇,但确实影响了人类创造艺术的方式。 AI模型最新展现出的图像生成能力远远超出人们的预期&#xf…

PyCharm使用 Anaconda安装TensorFlow

1.安装python全家桶Anaconda 1.1 官网 https://www.anaconda.com/ 进入官网后如下图所示,点击Download即可开始下载(若无法下载,请转至清华源下载) 1.2 清华 https://repo.anaconda.com/archive/ 2.Anaconda安装 点击Next -…

libssh2交叉编译和测试

目录 官方地址:https://www.libssh2.org/ 1.源码下载 2.交叉编译 3.测试代码 官方地址:https://www.libssh2.org/ 正常来说,看官网说明和例子都能正常编译和使用,想偷个懒的就参考以下步骤。 1.源码下载 我当前看到的版本是li…

【二分查找】求解单调方程的解 C++实现

目录 1 问题2 想法3 二分查找4 实现4-1 伪代码说明4-2 C11 1 问题 有函数 f ( x ) a x ( a > 1 ) f(x)a^x(a>1) f(x)ax(a>1) ,单调递增,现在给一个正整数 N N N,求使得 f ( x ) N f(x)N f(x)N的正整数解 x x x。    2 想法 x l o g a N xl…

Spring Boot集成ShardingSphere分片利器 AutoTable (二)—— 自动分片算法示例 | Spring Cloud 46

一、前言 在前面我们通过以下章节对ShardingSphere的AutoTable 有了基础的了解: Spring Boot集成ShardingSphere分片利器 AutoTable (一)—— 简单体验 | Spring Cloud 45 书接上回,本章进行对AutoTable 支持的自动分片算法进行…

【JAVAEE】使用wait()方法和notify()方法解决线程不安全中的有序性问题

目录 1.wait()方法 2.notify()方法 3.notifyAll()方法 4.wait()和sleep()方法的区别 由于线程之间是抢占式执行的,因此线程之间执行的先后顺序难以预知。但是在实际开发中有时候我们希望合理的协调多个线程之间的执行先后顺序。 完成这个协调工作,主…

QML之HTML5画布移植(Porting from HTML5 Canvas)

移植一个HTML5画布图像到QML画布非常简单。在成百上千的例子中,我们选择了一个来移植。 螺旋图形(Spiro Graph) 我们使用一个来自Mozila项目的螺旋图形例子来作为我们的基础示例。原始的HTML5代码被作为画布教程发布。 下面是我们需要修改…

OpenGL(十)——基础光照

目录 一、前言 二、环境光照 三、漫反射光照 3.1 法向量 3.2顶点着色器 3.3 VAO属性解释 3.4 片段着色器 四、镜面光照 4.1 片段着色器 一、前言 现实世界光照十分复杂,冯氏光照模型是对现实世界光照的抽象,主要由3部分组成,环境amb…

【JAVAEE】使用synchronized关键字和volatile关键字解决线程安全问题中的原子性,内存可见性和有序性问题

目录 1.synchronized关键字---监视器锁monitor lock 1.1synchronized的特性 互斥 刷新内存 可重入 1.3synchronized使用注意事项 2.volatile关键字 2.1volatile保证内存可见性问题 MESI缓存一致性协议 内存屏障 2.2volatile解决有序性问题 3.总结synchronized和vola…

ELK -- kibana 用nginx代理后无法访问

背景: 本地搭建好elk后,一切正常,后面改成用nginx代理kibana的5601端口,发现代理后无法正常访问(未代理的地址可正常访问),花了很多时间去查问题,报错基本都是http://ip:port/spaces…

Leetcode刷题之复制带随机指针的链表

生命不是安排,而是追求,人生的意义也许永远没有答案,但也要尽情感受这种没有答案的人生。 --弗吉尼亚. 伍尔芙 目录 前言: 🌸一.复制带随机指针的链表 🌅1.复制结点链接到原本链表每一个结点的…

24个强大的HTML属性,每个资深Web工程师都应该掌握!

HTML 属性非常多,除了基本的一些属性外,还有很多很有用的功能性特别强大的属性; 本文将介绍24个强大的HTML属性,这些属性可以让你的网站更加动态和交互,让用户感到更加舒适和愉悦。 让我们一起来探索这24个强大的HTML…

进程优先级+环境变量++地址空间+虚拟地址空间

索引 一.进程优先级二.环境变量1.通过代码如何获取环境1.通过第三个命令行参数获得2.根据第三方变量environ获取3.通过系统调用获取环境变量 2.验证环境变量可以被子进程继承下去 三.验证地址空间1.验证程序地址空间2.证明地址空间不是物理地址 四.虚拟地址空间虚拟地址空间存在…

BI财务智能分析,让企业管理更上一层楼

智能财务建设既可以看作是财务管理工作在经济社会数字化转型的全面开启,也可以看作是财务职能在以数字化技术为支撑,形成对内提升单位管理水平和风险管控能力、对外服务财政管理和宏观经济治理的会计职能拓展,究其本质则是在财务数字化转型升…