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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。

消息中间件

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

目前市面上可供选择的消息中间件有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实例

消息中间件面试专题

  1. RabbitMQ 中的 broker 是指什么?cluster 又是指什么?
  2. 什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布的?
  3. RAM node 和 disk node 的区别?
  4. RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制?
  5. RabbitMQ 概念里的 channel、exchange 和 queue 这些东东是逻辑概念,还是对应着进程实体?这些东东分别起什么作用?
  6. vhost 是什么?起什么作用?
  7. 在单 node 系统和多 node 构成的 cluster 系统中声明 queue、exchange ,以及进行 binding 会有什么不同?
  8. 客户端连接到 cluster 中的任意 node 上是否都能正常工作?
  9. 若 cluster 中拥有某个 queue 的 owner node 失效了,且该 queue 被声明具有durable 属性,是否能够成功从其他 node 上重新声明该 queue ?
  10. cluster 中 node 的失效会对 consumer 产生什么影响?若是在 cluster 中创建了mirrored queue ,这时 node 失效会对 consumer 产生什么影响?
  11. 能够在地理上分开的不同数据中心使用 RabbitMQ cluster 么?
  12. 为什么 heavy RPC 的使用场景下不建议采用 disk node ?
  13. 向不存在的 exchange 发 publish 消息会发生什么?向不存在的 queue 执行consume 动作会发生什么?
  14. routing_key 和 binding_key 的最大长度是多少?
  15. RabbitMQ 允许发送的 message 最大可达多大?
  16. 什么情况下 producer 不主动创建 queue 是安全的?
  17. “dead letter”queue 的用途?
  18. 为什么说保证 message 被可靠持久化的条件是 queue 和 exchange 具有durable 属性,同时 message 具有 persistent 属性才行?
  19. 什么情况下会出现 blackholed 问题?
  20. 如何防止出现 blackholed 问题?
  21. Consumer Cancellation Notification 机制用于什么场景?
  22. Basic.Reject 的用法是什么?
  23. 为什么不应该对所有的 message 都使用持久化机制?
  24. RabbitMQ 中的 cluster、mirrored queue,以及 warrens 机制分别用于解决什么问题?存在哪些问题?
  25. 什么是 ActiveMQ?
  26. ActiveMQ 服务器宕机怎么办?
  27. 死信队列是什么
  28. ActiveMQ 中的消息重发时间间隔和重发次数吗?

上面这28道消息中间件面试题全部是阿里面试的真题,配合文档使用可以起到事半功倍的作用,对于没基础的可以让你脑子里对消息中间件有一个系统的概念,对于有一定基础的老哥也可以起到查漏补缺的作用。

如果你需要这些消息中间件的文档加面试专题资料可以点击此处来获取就可以了!

相关文章
|
5天前
|
存储 设计模式 Dart
Flutter笔记:getX库中的GetView中间件
Flutter笔记:getX库中的GetView中间件
105 0
|
9月前
|
JavaScript 前端开发 中间件
前端学习笔记202307学习笔记第六十三天-redux单项数据流和中间件原理9
前端学习笔记202307学习笔记第六十三天-redux单项数据流和中间件原理9
33 0
|
5天前
|
算法 NoSQL Java
2023年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
9月前
|
NoSQL Java Redis
阿里Java高级岗中间件二面:GC+IO+JVM+多线程+Redis+数据库+源码
虽然“钱多、事少、离家近”的工作可能离技术人比较远,但是找到一份合适的工作,其实并不像想象中那么难。但是,有些技术人确实是认真努力工作,但在面试时表现出的能力水平却不足以通过面试,或拿到高薪,其实不外乎以下 2 个原因:
|
9月前
|
消息中间件 中间件 Kafka
限时开源!阿里内部消息中间件合集:MQ+Kafka+体系图+笔记
近好多小伙伴说在准备金三银四的面试突击了,但是遇到消息中间件不知道该怎么学了,问我有没有成体系的消息中间件的学习方式。 额,有点不知所措,于是乎小编就想着做一次消息中间件的专题,归类整理了一些纯手绘知识体系图、面试以及相关的学习笔记。
204 1
|
9月前
|
算法 NoSQL Java
2023年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
9月前
|
JavaScript 前端开发 中间件
前端学习笔记202307学习笔记第六十三天-redux单项数据流和中间件原理3
前端学习笔记202307学习笔记第六十三天-redux单项数据流和中间件原理3
48 0
|
9月前
|
JavaScript 前端开发 中间件
前端学习笔记202307学习笔记第六十三天-redux单项数据流和中间件原理4
前端学习笔记202307学习笔记第六十三天-redux单项数据流和中间件原理4
50 0
|
9月前
|
JavaScript 前端开发 中间件
前端学习笔记202307学习笔记第六十三天-redux单项数据流和中间件原理16
前端学习笔记202307学习笔记第六十三天-redux单项数据流和中间件原理16
43 0
|
9月前
|
JavaScript 前端开发 中间件
前端学习笔记202307学习笔记第六十三天-redux单项数据流和中间件原理13
前端学习笔记202307学习笔记第六十三天-redux单项数据流和中间件原理13
43 0
http://www.vxiaotou.com