阿里技术专家把《分布式消息中间件》写透了,不愧是行业扛把子

详解消息中间件及其应用场景和常用消息中间件的技术选型(RabbitMQ、Kafka 、RocketMQ、ActiveMQ) 消息中间件简介 消息中间件的使用场景 消息中间件的产生背景、特点和常用协议 常用消息中间件介绍(RabbitMQ、Kafka 、RocketMQ、ActiveMQ) 常用消息中间件的对比 常用消息中间件,如何技术选型? 阅读详情

前言

消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。目前市面上可供选择的消息中间件有RabbitMQ、ActiveMQ、 Kafka、 RocketMQ、ZeroMQ、MetaMQ等。

本文总结了近年来在实际项目中使用消息中间件的经历和踩过的一些坑,可为你在实际工作中进行产品选型、业务场景方案制定、性能调整等提供明确的思路。由于是基于Java语言开发,因此它非常适合Java初中级程序员阅读,学习。

Part 1消息队列

介绍消息队列技术的背景,包括使用场景和消息队列的功能特点,并设计了一个简单的消息队列。

  • 1.1 系统间通信技术介绍
  • 1.2 为何要用消息队列
  • 1.3 消息队列的功能特点
  • 1.4 设计一个简单的消息队列

     

Part 2消息协议

介绍消息队列中常用的消息协议,包括每个消息协议的历史背景、主要概念和基于该协议的消息通信过程。本章所介绍的协议也是接下来理解各种消息中间件产品的基础。

2.1 AMQP

2.2 MQTT

2.3 STOMP

2.4 XMPP

2.5 JMS

Part 3RabbitMQ

具体介绍RabbitMQ的特点、主要概念和Java使用示例,接着通过使用RabbitMQ实现异步处理和消息推送的功能,最后给出在工作中使用RabbitMQ时的一些实践建议。

3.1 简介

3.2 工程实例

  • 3.2.1 Java访问RabbitMQ实例
  • 3.2.2 Spring整合RabbitMQ
  • 3.2.3 基于RabbitMQ的异步处理
  • 3.2.4 基于RabbitMQ的消息推送

     

3.3 RabbitMQ实践建议

  • 3.3.1 虚拟主机
  • 3.3.2 消息保存
  • 3.3.3 消息确认模式
  • 3.3.4 消费者应答
  • 3.3.5 流控机制
  • 3.3.6 通道
  • 3.3.7 总结

     

Part 4ActiveMQ

具体介绍ActiveMQ的特点、基本概念和Java使用示例,接着通过使用ActiveMQ实现消息推送分布式事务的功能,最后给出在工作中使用ActiveMQ时的一些实践建议。

4.1 简介

4.2 工程实例

  • 4.2.1 Java访问ActiveMQ实例
  • 4.2.2 Spring整合ActiveMQ
  • 4.2.3 基于ActiveMQ的消息推送
  • 4.2.4 基于ActiveMQ的分布式事务

     

4.3 ActiveMQ 实践建议

  • 4.3.1 消息转发模式
  • 4.3.2 消息积压
  • 4.3.3 消息事务
  • 4.3.4 消息应答模式
  • 4.3.5 消息发送优化
  • 4.3.6 消息消费优化
  • 4.3.7 消息协议
  • 4.3.8 消息持久化

     

Part 5Kafka

具体介绍Kafka的特点、主要概念和Java使用示例,接着通过使用Kafka实现用户行为数据采集、日志收集和流量削峰的功能,最后给出在工作中使用Kafka时的一-些实践建议。

5.1 简介

5.2 工程实例

  • 5.2.1 Java访问Kafka实例
  • 5.2.2 Spring整合Kafka
  • 5.2.3 基于Kafka的用户行为数据采集
  • 5.2.4 基于Kafka的日志收集
  • 5.2.5 基于Kafka的流量削峰

     

5.3 Kafka实践建议

  • 5.3.1 分区
  • 5.3.2 复制
  • 5.3.3 消息发送
  • 5.3.4 消费者组
  • 5.3.5 消费偏移量

     

Part 6RocketMQ

具体介绍RocketMQ的特点、主要概念和Java使用示例,接着通过使用RocketMQ的特性实现消息顺序处理和分布式事务的另外一种解决方案,最后给出在工作中使用RocketMQ时的一些实践建议。

6.1 简介

6.2 工程实例

  • 6.2.1 Java访问RocketMQ实例
  • 6.2.2 Spring整合RocketMQ
  • 6.2.3 基于RocketMQ的消息顺序处理
  • 6.2.4 基于RocketMQ的分布式事务

     

6.3 RocketMQ实践建议

  • 6.3.1 消息重试
  • 6.3.2 消息重复
  • 6.3.3 集群
  • 6.3.4 顺序消息
  • 6.3.5 定时消息
  • 6.3.6 批量发送消息
  • 6.3.7 事务消息

     

目录

总结

Alibaba在这片领域还是很有话语权的,介绍到的都是市面上主流也是应用最为广泛的四种消息中间件产品。可以看到,在整本书中不仅仅只是介绍这些消息中间件的来源、特性、Java 语言使用的示例,同时也结合具体业务场景的应用案例,最后给出在实际项目中使用时的一些建议和需要综合权衡的技术要点。

它带给你的更多是教你思维,通过这些思想方式进行实践,从实践中得到成长,这样你学到的东西才是真正对自己有用的,对你往后的工作一定会有较大的提升。

阿里资深架构师带你认识,MetaQ 消息中间件 MetaQ MetaQ 是一款分布式、队列模型的消息中间件。分为 Topic 与 Queue 两种模式,Push 和 Pull 两种方式消费,支持严格的消息顺序,亿级别的堆积能力,支持消息回溯和多个维度的消息查询。Java学习圈子MetaQ发展历史 2007年,淘宝实施了“五彩石”项目,将交易系统由单机交易升级到了分布式,这个过程中产生了 Notify。 2010年,阿里巴巴 B2B 部门基... 阅读详情

相关推荐

机器人抓取(一)—— ROS MoveIt! 程序控制真实UR5机器人运动(python)

接上篇:ubuntu18.04 ros-melodic 安装 ur_robot_driver,驱动真实的 ur5 机器人 上文在 ubuntu 系统中配置了ur 机器人ros功能包 universal_robot 和驱动 Universal_Robots_ROS_Driver,并实现了用 moveit_rviz 拖动机器人运动。本文旨在学习如何使用 moveit python 用户接口moveit_commander,实现真实的ur5 机器人轨迹规划与控制。 1. ur5 机器人控制 参考:MoveIt »

zxxRobot的博客 1万+

读了阿里技术专家写的这本《分布式消息中间件》让我思维拔高了一个境界,不愧是扛把子!

前言 消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。目前市面上可供选择的消息中间件有RabbitMQ、ActiveMQ、 Kafka、 RocketMQ、ZeroMQ、MetaMQ等。 本文总结了近年来在实际项目中使用消息中间件的经历和踩过的一些坑,可为你在实际工作中进行产品选型、业务场景方案制定、性能调整等提供明确的思路。由于是基于Java语言开发,因此它非常适合Java初中级程

QAQFyl的博客 360

Cadence16.6安装教程

如需安装所需的软件,请到文章末尾处查看 安装步骤: 安装前先关闭杀毒软件和360卫士,注意安装路径不能有中文,安装包路径也不要有中文。 试装系统:win10 64bit 1.解压安装包(共5个压缩包,每个都要解压) 2.以管理员身份运行安装程序。 3.选择License Manager。 4.点击NEXT。 5.选择I accept,然后点击NEXT。 6.选择License Manage...

谢谢关注“小鱼教你模数电”,各平台同号 8万+

Dubbo+Zookeeper架构—高级篇16—消息中间件在分布式系统中的作用及介绍

一、消息中间件的定义        Message-orientedmiddleware (MOM) is software infrastructure focused on sending and receivingmessages between distributed systems.        消息中间件是在分布式系统中完成消息的发送和接收的基础软件。二、消息中间件的作用     ...

weixin_40663800的博客 1032

Windows本地化部署Dify完整指南

本文详细介绍了在Windows系统上本地化部署Dify的完整步骤,涵盖了Docker Desktop的安装与配置、Dify源代码的获取、环境变量的设置、服务的启动与管理、以及常见问题的解决方案。文章首先指导用户如何下载和安装Docker Desktop,并配置WSL 2功能。接着,详细说明了如何获取Dify源代码,并通过Docker Compose启动服务。文章还提供了高级配置指南,包括如何配置大语言模型和更新Dify版本。最后,针对Docker镜像拉取失败等常见问题,提供了详细的诊断和解决方案。通过本文,

jacky_zhuyuanlu的博客 1万+

madgwick算法基于MPU9250姿态融合漂移问题的原因

基于MPU9250的madgwick算法姿态漂移问题原因 0、声明 因为这个是现象是不是共性目前本人还没研究过,只是在个体问题研究的基础上得出的结论,或许我买到的MPU9250是一个盗版:),所以只具备参考性。 1、现象 使用MPU9250的加速度计、角速度计、磁力计(AK8963)原始数据输入到madgwick算法中,得到的姿态最终会在停止姿态变化后仍然漂移一小段时间。其中加速度计和角速度计读取速率为400hz,磁力计为100hz,加速度计采样范围±2g,角速度计采样范...

GreedyZombie的博客 3872

腾讯内网首发:分布式核心原理解析+分布式消息中间件实践笔记

消息队列在大型分布式系统中具有丰富的应用场景。例如,系统间需要解耦,一个系统发布消息,多个系统订阅消费消息,消息生产者并不需要知道消费方是谁。在高并发场景下,比如秒杀活动,短时间内会发起大量请求,为应对瞬时请求,如果部署大量的机器来处理请求,秒杀活动结束后流量很低,则会浪费很多资源,增加成本,而使用消息队列的堆积能力,先保存请求,再匀速处理请求,则会很好地解决此类问题。笔记中从不同角度细致地讲解了各种消息中间件,读者可以结合场景,从高可用性、可扩展性、伸缩性、消息堆积能力等方面选择符合自己需求的中间件。

m0_73311735的博客 226

【2022KaliLinux】openvas/gvm 没有scan configs 或者是 scan config error “XXXXXXXXXXX”

gvm/openvas的configuration的scan config为空

zbossz的学习小分队 3606

分布式中间件核心原理与RocketMQ最佳实践

分布式中间件是现代分布式系统中不可或缺的组件之一,它扮演着连接和协调各个节点的桥梁角色。本文介绍了分布式中间件的核心原理和RocketMQ的最佳实践,希望读者可以通过本文更好地理解和应用分布式中间件。当然,分布式系统是一个复杂的领域,本文只是简单介绍了其中的一部分,读者还需要深入学习和实践。

前端好玩的小案例、游戏、工具 2139

海康DS-7604N-K1/RTB固件包

【摘要】海康DS-7604N-K1/RTB萤石云设备发布V4.30.091版本升级程序(2022.09.19),仅适用于指定型号。升级前需先升级至V3.4.106基础版本,刷机会重置设备为未激活状态,需重新设置admin密码。该机型支持密码/手势登录,无密码时可通过U盘升级。注意事项:升级存在风险,需确认程序适用性;升级过程严禁断电;必须阅读压缩包内的刷机说明。此为定制机型,非必要不建议升级。(150字)

海康威视技术支持 1575

【知识分享】IBIS 建模指南 05

本文详细阐述了IBIS模型创建过程中的关键技术和数据规范要求。主要内容包括:1. 数据完整性检查要点,强调I-V和V-T数据必须覆盖所有工艺角且匹配;2. 数据限制处理方法,介绍100/1000点限制下的两种数据筛选算法;3. 特殊数据处理技术,包括内部终端电阻调整和V-T表时间窗口选择;4. 高级关键字应用,涵盖[ModelSelector]、[Sub model]、[DiffPin]等复杂功能实现方法;5. 预加重缓冲器等特殊结构的建模方案。

一只豌豆象的博客 1595

阿里技术专家写的这本限量版《分布式消息中间件》,我思维拔高了一个境界,不愧是扛把子!

前言 消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。目前市面上可供选择的消息中间件有RabbitMQ、ActiveMQ、 Kafka、 RocketMQ、ZeroMQ、MetaMQ等。 本文总结了近年来在实际项目中使用消息中间件的经历和踩过的一些坑,可为你**在实际工作中进行产品选型、业务场景方案制定、性能调整等提供明确的思路。**由于是基于Java语言开发,因此它非常适合Java初中

weixin_47067712的博客 1225

AUTOSAR模式管理-EcuM多核处理及其他概念

因此,EcuM不请求状态。因此,BswM必须确保,例如,在调用EcuM_GoHalt或EcuM_GoPoll之前,必须将关机目标从其默认值更改为ECUM_STATE_SLEEP。对于ECU的关闭,BswM(位于主EcuM的同一个分区中)最终调用主核上的GoOff,该GoOff将请求分发给所有的从核。在ECU Manager模块的早期版本中,睡眠目标被特殊处理,因为在ECU中实现的睡眠模式取决于ECU的功能。在使用了外部的SBC控制相关的MCU的下电的时候,在OFF阶段最后调用SBC进入到Sleep的指令。

m0_49148264的博客 1340

到了2020年,年薪80w的阿里P7专家,顶尖的技术人才只因做到了这几点

最近部门招聘,很多工程师,包括我在内都参与了内推和面试的过程,经过这次招聘,我发现能够最终拿到offer的人,基本上在看到简历的那一瞬间就已经定下来了,后续的面试只不过是一种验证而已(注意,是验证,而不是走过场),除非你面试过程中犯错误,或者你不想来,否则,那个offer一定是可以拿下的。 那些拿下offer的人,基本上都有这么一些特征 1. 学校不错,一般都是985,211,如果学...

javajavajava 4万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

阿里p8Java技术专家,他们的能力都需要达到什么程度?

大家口中的P8,通常都是阿里P8高级技术专家,是一线Team leader或者二级域架构师,需要对一个领域的业务非常熟悉并且能够将影响力辐射到其他合作团队。一般来说一些业...

架构师小秘圈 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

全网首发!消息中间件神仙笔记,涵盖阿里十年技术精髓

消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。目前市面上可供选择的消息中间件有RabbitMQ、ActiveMQ、Kafka、RocketMQ、ZeroMQ、MetaMQ等。面试也是问的越来越多,这篇文章要与大家聊一聊RabbitMQ、ActiveMQ、Kafka、RocketMQ这四种应用比较广泛的消息中间件。(通过阿里技术官总结的一份消息中间件精髓文档与阿里面试真题展开)...

lt_xiaodou的博客 511

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

面试阿里,我还是挂在了第四轮……

作者 | 倪升武责编| 郭 芮可能每个技术人都有个阿里梦,我也不例外。最近准备跳槽,前一阵子在准备各种面试,也面了几个大厂,包括阿里。是的,最后我挂在了第四轮。这篇...

优快云资讯 1万+

阿里技术专家写的这本限量版《分布式消息中间件》

看完上述知识点如果你深感Java基础不够扎实,或者刷题刷的不够、知识不全面小编专门为你量身定制了一套针对知识面不够,也莫慌!还有一整套的,可以瞬间查漏补缺全都是一丢一丢的收集整理纯手打出来的。

2401_83916326的博客 1043

月薪60K技术专家,在阿里巴巴是什么水平?

能拿月薪60K,就拿阿里P8高级技术专家做比喻,他们是一线Team leader或者二级域架构师,需要对一个领域的业务非常熟悉并且能够将影响力辐射到其他合作团队。一般来说...

Java后端技术 2661

简历:第一章:技术亮点如何写

具备扎实的java基础,熟练掌握javaIO流,集合,多线程,反射,泛型,注解,网络编程等基础开发技术。 熟练使用常用的java集合以及常用集合的源码,熟悉多线程以及并发容器的使用。比如CAS,AQS,Lock,Volatilte,Synchronized等。 熟悉常用的设计模式,常见的算法以及常见的数据结构,熟悉HTTP协议,TCPIP协议,OAUTH2协议等。 深入理解Spring,Spring MVC,Mybatis等开源框架的设计原理以及底层架构,研究过部分核心源码,具备一定的框架定制开发能力

我是Java程序员廖志伟,感谢朋友们的支持! 2万+

深入理解阿里分布式消息中间件

什么是分布式消息中间件什么是分布式消息中间件?对于分布式消息中间件,首先要了解两个基础的概念,即什么是分布式系统,什么又是中间件。 分布式系统:“A distributed system is one in which components located at networked computers communicate and coordinate their actions only by...

Java烂猪皮 1830

RocketMQ:分布式消息中间件详解与应用场景

RocketMQ:分布式消息中间件详解与应用场景

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 2006

阿里技术大咖力荐:消息中间件进阶手册,限时开源,成为技术高手的秘籍

亲爱的朋友们,消息中间件的重要性不言而喻,它犹如一座桥梁,连接着信息的传递与处理。希望在阅读完这份文档后,你们能够根据实际需求,从高可用性、可扩展性、伸缩性以及消息堆积能力等多个角度出发,为自己挑选一款得心应手的消息中间件。需要完整版PDF学习资源请扫描下方名片100%获取免费下载方式!👇👇点击下方名片👇👇。

资料免费分享,点击名片 1044
上一篇: 硬核!阿里内部消化的Mybatis学习笔记,简短却精悍,全是重点
下一篇: 哭了!Google“内部消化”的Spring实战资料,看呆了
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值