跳至主要內容
RabbitMQ 面试

RabbitMQ 面试

RabbitMQ 简介

【简单】RabbitMQ 是什么?🌟

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


钝悟...大约 30 分钟分布式分布式通信MQ分布式通信MQRabbitMQ面试
Dubbo 面试之应用

Dubbo 面试之应用

简介

【简单】Dubbo 是什么?为什么使用 Dubbo?

Dubbo 是一款高性能、轻量级的开源 Java RPC 框架。

Dubbo 提供了三大核心能力:

  • 面向接口的远程过程调用(RPC):提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。
  • 智能容错和负载均衡:内置多种负载均衡策略,智能感知下游节点健康状况,显著减少调用延迟,提高系统吞吐量。
  • 服务自动注册和发现:支持多种注册中心服务,服务实例上下线实时感知。

钝悟...大约 16 分钟分布式分布式通信RPC分布式通信RPC微服务Dubbo面试
Dubbo 面试之服务治理

Dubbo 面试之服务治理

服务注册和发现

【中等】什么是服务注册与发现?Dubbo 如何实现?

什么是服务注册与发现?

服务注册与发现是微服务的核心基础设施,通过解耦服务地址硬编码,实现动态扩缩容故障自动恢复

  • 服务注册(Registration):服务提供者(Provider)启动时,将自己的 IP、端口、接口名 等信息上报到注册中心(如 Zookeeper/Nacos)。举例订单服务启动后,向注册中心注册:"order-service: 192.168.1.100:8080"
  • 服务发现(Discovery):服务消费者(Consumer)从注册中心 拉取可用服务列表,并基于负载均衡策略选择目标实例。举例支付服务需要调用订单服务时,从注册中心获取所有可用的order-service节点列表。

钝悟...大约 34 分钟分布式分布式通信RPC分布式通信RPC微服务Dubbo面试服务治理
《Kafka 核心技术与实战》笔记

《Kafka 核心技术与实战》笔记

开篇词 为什么要学习 Kafka?

消息引擎系统 ABC

消息引擎系统的作用:

  • 消息引擎传输的对象是消息;
  • 如何传输消息属于消息引擎设计机制的一部分。

钝悟...大约 33 分钟笔记分布式分布式通信分布式通信MQKafka
Kafka 面试

Kafka 面试

Kafka 简介

【简单】Kafka 是什么?🌟

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


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

RPC 面试

RPC 简介

【基础】什么是 RPC?RPC 有什么用?

RPC 的全称是 Remote Procedure Call,即远程过程调用

RPC 的主要作用是:

  • 屏蔽远程调用跟本地调用的差异,让用户像调用本地一样去调用远程方法。
  • 隐藏底层网络通信的复杂性,让用户更聚焦于业务逻辑。

RPC 是微服务架构的基石,它提供了一种应用间通信的方式。


钝悟...大约 40 分钟分布式分布式通信RPC分布式通信微服务RPC
Dubbo 面试之架构

Dubbo 面试之架构

调用流程

【简单】Dubbo 支持哪些序列化方式?

  • Hessian(默认)
    • 特点:二进制格式,速度较快,体积较小
    • 适用场景:通用 RPC 调用(Dubbo 默认方案)
    • 缺点:对复杂对象支持有限
  • JSON
    • 特点:文本格式,可读性强,跨语言支持好
    • 适用场景:前后端交互、多语言系统
    • 缺点:性能较差,数据体积大
  • Java 原生序列化
    • 特点:JDK 内置,使用简单
    • 适用场景:Java 单体应用调试
    • 缺点:性能差,体积大,仅限 Java
  • Kryo
    • 特点:高性能二进制,速度极快,体积小
    • 适用场景:高并发、低延迟场景
    • 缺点:API 复杂,需注册类
  • Protobuf(推荐)
    • 特点:Google 出品,高效跨语言,可扩展
    • 适用场景:微服务跨语言通信
    • 缺点:需预定义。proto 文件
  • FST
    • 特点:类似 Kryo,高性能二进制
    • 适用场景:替代 Hessian 的高性能需求
    • 缺点:兼容性较弱

钝悟...大约 45 分钟分布式分布式通信RPC分布式通信RPC微服务Dubbo面试
《Dubbo 源码解读与实战》笔记

《Dubbo 源码解读与实战》笔记

开篇词 深入掌握 Dubbo 原理与实现,提升你的职场竞争力

Apache Dubbo是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:

  • 面向接口的远程方法调用;
  • 可靠、智能的容错和负载均衡;
  • 服务自动注册和发现能力。

Dubbo 是一个分布式服务框架,致力于提供高性能、透明化的 RPC 远程服务调用方案以及服务治理方案,以帮助我们解决微服务架构落地时的问题。


钝悟...大约 21 分钟笔记分布式分布式通信分布式通信RPCDubbo
《RocketMQ 技术内幕》笔记

《RocketMQ 技术内幕》笔记

读源代码前的准备

RocketMQ 源代码的目录结构

  • broker:broker 模块(broker 启动进程) 。
  • client:消息客户端,包含生产者、消息消费者相关类。
  • common:公共包。
  • dev:开发者信息(非源代码) 。
  • distribution:部署实例文件夹(非源代码) 。
  • example:RocketMQ 示例代码。
  • filter:消息过滤相关基础类。
  • filter:消息过滤服务器实现相关类(Filter 启动进程) 。
  • logappender:日志实现相关类。
  • namesrv:N ameServer 实现相关类(Names 巳 rver 启动进程) 。
  • openmessaging:消息开放标准,正在制定中。
  • remoting:远程通信模块,基于 Netty 。
  • srvutil:服务器工具类。
  • store:消息存储实现相关类。
  • style:checkstyle 相关实现。
  • test:测试相关类。
  • tools:工具类,监控命令相关实现类。

钝悟...大约 21 分钟笔记分布式分布式通信分布式通信MQRocketMQ
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面试
2
3