跳至主要內容
RabbitMQ 面试

RabbitMQ 面试

RabbitMQ 简介

【简单】RabbitMQ 是什么?🌟

RabbitMQ 是一个开源的消息队列中间件,基于 AMQP(Advanced Message Queuing Protocol,高级消息队列协议)标准实现。


钝悟...大约 30 分钟分布式分布式通信MQ分布式通信MQRabbitMQ面试
Kafka 面试

Kafka 面试

Kafka 简介

【简单】Kafka 是什么?🌟

Kafka 是一个开源分布式事件流平台。最初由 LinkedIn 开发,现在是 Apache 顶级项目。


钝悟...大约 65 分钟分布式分布式通信MQKafka分布式分布式通信MQKafka面试
RocketMQ 面试

RocketMQ 面试

RocketMQ 简介

【简单】RocketMQ 是什么?🌟

RocketMQ 是一个开源分布式消息中间件。最初由阿里巴巴开发,现在是 Apache 顶级项目。

RocketMQ 的核心概念

  • 核心组件
    • 生产者(Producer):从 NameServer 获取路由信息后,将消息发送到 Broker。
    • 消费者(Consumer):从 NameServer 获取路由信息后,从 Broker 拉取并消费消息。
    • 代理(Broker):负责消息的存储、投递和查询。采用主从结构保证高可用。
    • 命名服务(NameServer):管理所有 Broker 的地址列表。无状态,简单高效。
  • 逻辑存储
    • 主题(Topic):消息的一级分类,生产者和消费者操作的逻辑对象。
    • 标签(Tag):Topic 下的二级分类,用于对消息进行过滤。
    • 消息(Message):包含 Body(消息体)、Topic、Tags(标签)、Keys(唯一键)等属性。
    • 消息队列(Message Queue):Topic 在物理上的分区,是负载均衡和并行处理的最小单位。
  • 物理存储
    • 提交日志(Commit Log):所有 Topic 的消息都顺序追加到这一个文件中。这是实现高吞吐写入的关键。
    • 消费队列(Consume Queue):作为 CommitLog 的索引文件。每个 Queue 对应一个,记录消息在 CommitLog 中的位置,实现高效的读取。
    • 索引文件(Index File):提供按 Message Key 或时间范围查询消息的能力。

钝悟...大约 32 分钟分布式分布式通信MQRocketMQ分布式通信MQRocketMQ面试
RocketMQ 基本原理

RocketMQ 基本原理

原理

分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题:

  1. 消息的顺序问题
  2. 消息的重复问题

顺序消息

第一种模型

假如生产者产生了 2 条消息:M1、M2,要保证这两条消息的顺序,应该怎样做?你脑中想到的可能是这样:


钝悟...大约 7 分钟分布式分布式通信MQRocketMQJava中间件MQRocketMQ
ActiveMQ 快速入门

ActiveMQ 快速入门

JMS 基本概念

JMSJava 消息服务(Java Message Service)API,是一个 Java 平台中关于面向消息中间件的 API。它用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java 消息服务是一个与具体平台无关的 API,绝大多数 MOM 提供商都对 JMS 提供支持。

消息模型

JMS 有两种消息模型:

  • Point-to-Point(P2P)
  • Publish/Subscribe(Pub/Sub)

钝悟...大约 7 分钟分布式分布式通信MQJava中间件MQActiveMQ
MQ 面试

MQ 面试

MQ 简介

【简单】MQ 是什么?🌟

MQ(Message Queue,消息队列) 是一种异步通信机制,用于在不同服务、应用或系统组件之间可靠地传递消息。它的核心思想是解耦生产者和消费者,通过缓冲消息来提高系统的可靠性、扩展性和可维护性。

MQ 的核心概念

  • 生产者(Producer):发送消息的应用或服务。
  • 消费者(Consumer):接收并处理消息的应用或服务。
  • 消息(Message):传输的数据单位,可以是文本、JSON、二进制等格式。
  • 队列(Queue):存储消息的缓冲区,遵循 FIFO(先进先出) 或优先级策略。
  • Broker(消息代理):负责接收、存储和转发消息的中间件(如 RabbitMQ、Kafka)。
  • 背压:背压是一种消息传递机制中的流控策略。当消费者处理速度跟不上生产者发送速度时,通过反向施加压力,迫使生产者降速或停止发送,以防止系统被压垮。

钝悟...大约 49 分钟分布式分布式通信MQ分布式通信MQ面试
消息队列

消息队列

消息队列(Message Queue,简称 MQ)技术是分布式应用间交换信息的一种技术。

消息队列主要解决应用耦合,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。

📖 内容


钝悟...大约 4 分钟分布式分布式通信MQ分布式通信MQ
RocketMQ 快速入门

RocketMQ 快速入门

Apache RocketMQ 是一个分布式 MQ 和流处理平台,具有低延迟、高性能和可靠性、万亿级容量和灵活的可扩展性。

RocketMQ 由阿里巴巴孵化,被捐赠给 Apache,成为 Apache 的顶级项目。

RocketMQ 概念

img
img

钝悟...大约 20 分钟分布式分布式通信MQRocketMQJava中间件MQRocketMQ
Kafka 存储

Kafka 存储

Kafka 是 Apache 的开源项目。Kafka 既可以作为一个消息队列中间件,也可以作为一个分布式流处理平台

Kafka 用于构建实时数据管道和流应用。它具有水平可伸缩性,容错性,快速快速性

逻辑存储


钝悟...大约 10 分钟分布式分布式通信MQKafka分布式通信MQKafka
2