当前位置:网站首页>全网首发!消息中间件神仙笔记,涵盖阿里十年技术精髓
全网首发!消息中间件神仙笔记,涵盖阿里十年技术精髓
2022-08-08 15:24:00 【头顶假发】
消息中间件
消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。
目前市面上可供选择的消息中间件有RabbitMQ、ActiveMQ、Kafka、RocketMQ、ZeroMQ、MetaMQ等。面试也是问的越来越多,这篇文章要与大家聊一聊RabbitMQ、ActiveMQ、Kafka、RocketMQ这四种应用比较广泛的消息中间件。(通过阿里技术官总结的一份消息中间件精髓文档与阿里面试真题展开)
阿里可以说是互联网行业的T0,阿里的技术官们也可以说是行业的顶尖人才,他们总结的文档质量可以说是毋庸置疑的。这份文档介绍了现在常用的四种消息中间件产品在各个业务场景中的使用案例。大家通过案例得到启发,可以在实际工作中进行产品选型、业务场景方案制定、性能调整等提供思路。
为了不影响大家的阅读体验,就只能将主要内容用截图的方式展示出来了,需要这份文档以及下面要介绍的面试专题直接点击此处即可免费获取
分布式消息中间件实践
- 消息队列
消息队列(MQ)是一种系统间相互协作的通信机制。
消息队列目录一览
消息队列的功能特点
- 消息协议
消息协议则是指用于实现消息队列功能时所涉及的协议。
消息协议目录小结
消息核心组件的生命周期
- RabbitMQ
RabbitMQ是一个由 Erlang语言开发的基于AMQP标准的开源实现。
RabbitMQ目录
Java访问RabbitMQ实例
- ActiveMQ
ActiveMQ是由Apache出品的一款开源消息中间件,旨在为应用程序提供高效、可扩展、稳定、安全的企业级消息通信。
ActiveMQ目录
ActiveMQ基本概念
- Kafka
Kafka最早是由 LinkedIn公司开发的一种分布式的基于发布/订阅的消息系统,后来成为Apache 的顶级项目。
Kafka目录
Spring整合Kafka
- RocketMQ
RocketMQ是阿里巴巴于2012年开源的分布式消息中间件,后来捐赠给Apache软件基金会,并于2017年9月25日成为Apache 的顶级项目。
RocketMQ目录
Java 访问RocketMQ实例
如果你需要这些消息中间件的文档加面试专题资料
关注我支持一下,点击此处即可免费获取
消息中间件面试专题
- RabbitMQ 中的 broker 是指什么?cluster 又是指什么?
- 什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布的?
- RAM node 和 disk node 的区别?
- RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制?
- RabbitMQ 概念里的 channel、exchange 和 queue 这些东东是逻辑概念,还是对应着进程实体?这些东东分别起什么作用?
- vhost 是什么?起什么作用?
- 在单 node 系统和多 node 构成的 cluster 系统中声明 queue、exchange ,以及进行 binding 会有什么不同?
- 客户端连接到 cluster 中的任意 node 上是否都能正常工作?
- 若 cluster 中拥有某个 queue 的 owner node 失效了,且该 queue 被声明具有durable 属性,是否能够成功从其他 node 上重新声明该 queue ?
- cluster 中 node 的失效会对 consumer 产生什么影响?若是在 cluster 中创建了mirrored queue ,这时 node 失效会对 consumer 产生什么影响?
- 能够在地理上分开的不同数据中心使用 RabbitMQ cluster 么?
- 为什么 heavy RPC 的使用场景下不建议采用 disk node ?
- 向不存在的 exchange 发 publish 消息会发生什么?向不存在的 queue 执行consume 动作会发生什么?
- routing_key 和 binding_key 的最大长度是多少?
- RabbitMQ 允许发送的 message 最大可达多大?
- 什么情况下 producer 不主动创建 queue 是安全的?
- “dead letter”queue 的用途?
- 为什么说保证 message 被可靠持久化的条件是 queue 和 exchange 具有durable 属性,同时 message 具有 persistent 属性才行?
- 什么情况下会出现 blackholed 问题?
- 如何防止出现 blackholed 问题?
- Consumer Cancellation Notification 机制用于什么场景?
- Basic.Reject 的用法是什么?
- 为什么不应该对所有的 message 都使用持久化机制?
- RabbitMQ 中的 cluster、mirrored queue,以及 warrens 机制分别用于解决什么问题?存在哪些问题?
- 什么是 ActiveMQ?
- ActiveMQ 服务器宕机怎么办?
- 死信队列是什么
- ActiveMQ 中的消息重发时间间隔和重发次数吗?
上面这28道消息中间件面试题全部是阿里面试的真题,配合文档使用可以起到事半功倍的作用,对于没基础的可以让你脑子里对消息中间件有一个系统的概念,对于有一定基础的老哥也可以起到查漏补缺的作用。
边栏推荐
- 技术分享 | 接口自动化测试之JSON Schema模式该如何使用?
- (1)通过FlinkSQL将数据写入mysql demo
- 深度学习-神经网络原理1
- Introduction to Power BI
- P8352-[SDOI/SXOI2022]小N的独立集【dp套dp】
- Tungsten Fabric SDN — OpenStack 与 Kubernetes 异构集群统一 SDN 方案
- 瑞吉外卖学习笔记2
- leetcode/delete the nth node from the bottom of the linked list
- 兆骑科创创业赛事活动举办平台,投融资对接,线上直播路演
- bzoj2816 [ZJOI2012] Network
猜你喜欢
Elegantly detect and update web applications in real time
什么是低代码开发?大家都真的看好低代码开发吗?
JS-BOM-for, if (string to case)
如何使用 Eolink 实现 API 文档自动生成
湖北钠斯网络数字藏品交易系统
Notes on the development of kindergarten enrollment registration system based on WeChat applet
全志V853芯片Tina下RTSP环境搭建方法
跟我一起来学弹性云服务器ECS【华为云至简致远】
JS加法器(DOM)
彻底理解 volatile 关键字及应用场景,面试必问,小白都能看懂!
随机推荐
CS231n:6 训练神经网络(二)
【Unity入门计划】用双血条方法控制伤害区域减血速度
5G NR RRC连接控制
JS-BOM-factorial calculation
bzoj3693 round table hall theorem + segment tree
leetcode/number of palindromic substrings
跟我一起来学弹性云服务器ECS【华为云至简致远】
什么是低代码开发?大家都真的看好低代码开发吗?
【控制】动力学建模举例 --> 牛顿-欧拉法
Redis RDB分析系统
彻底理解 volatile 关键字及应用场景,面试必问,小白都能看懂!
深度学习-神经网络原理1
兆骑科创创业赛事活动举办平台,投融资对接,线上直播路演
Ubuntu下使用sudo dpkg --configure -a后数据库出现问题
分布式架构服务调用
【Unity入门计划】Unity实例-C#如何通过封装实现对数据成员的保护
解决Redis、MySQL缓存双写不一致问题
sqoop连接MySQL跟本机不一致是为什么
连这几个网站都不知道,怪不得你的消息比别人落后
大佬们,sqlserver-cdc任务报错这个,大家遇到过吗Caused by: org.apac