跳至主要內容
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面试服务治理
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面试
微服务之注册和发现

微服务之注册和发现

服务注册和发现的基本原理

服务定义是服务提供者和服务消费者之间的约定,但是在微服务架构中,如何达成这个约定呢?这就依赖于服务注册和发现机制。

注册和发现的角色

在微服务架构下,服务注册和发现机制中主要有三种角色:

  • 服务提供者(RPC Server / Provider)
  • 服务消费者(RPC Client / Consumer)
  • 服务注册中心(Registry)

钝悟...大约 21 分钟设计架构微服务设计架构微服务分布式注册中心
微服务之服务调用

微服务之服务调用

RPC 简介

通过注册中心,服务消费者和服务提供者就可以感知彼此。但是,要实现交互还必须解决通信问题。

在单体应用中,一次服务调用发生在同一台机器上的同一个进程内部,因此也被称为本地方法调用。在微服务应用中,由于服务提供者和服务消费者运行在不同物理机器上的不同进程内,因此也被称为远程方法调用,简称 RPC(Remote Procedure Call)

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


钝悟...大约 15 分钟设计架构微服务设计架构微服务分布式RPC
《极客时间教程 - 微服务架构核心 20 讲》笔记

《极客时间教程 - 微服务架构核心 20 讲》笔记

什么是微服务架构

微服务是一种架构模式。

微服务的六个特点:

  • 一组小的服务
  • 独立的进程
  • 独立部署
  • 轻量级通信
  • 基于业务能力
  • 无集中式管理——这里指的是可以用不同的技术栈,不同的存储

微服务定义:基于有界上下文的、松散耦合的、面向服务的架构。

架构师如何权衡微服务的利弊

架构之道在于权衡利弊。


钝悟...大约 8 分钟笔记设计设计架构微服务
微服务简介

微服务简介

本文关键词:定义演进利弊如何拆分容量规划核心组件

什么是微服务

微服务定义

微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时,服务会使用最小规模的集中管理 (例如 Docker)技术,服务可以用不同的编程语言与数据库等。

——Martin Fowler 和 James Lewis 对应微服务( Microservices)的定义


钝悟...大约 16 分钟设计架构微服务设计架构微服务分布式
《极客时间教程 - 从 0 开始学微服务》笔记

《极客时间教程 - 从 0 开始学微服务》笔记

到底什么是微服务?

微服务定义

微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时,服务会使用最小规模的集中管理 (例如 Docker)技术,服务可以用不同的编程语言与数据库等。

——Martin Fowler 和 James Lewis

单体应用的问题

  • 部署效率低
  • 团队协作开发成本高
  • 单点故障问题
  • 线上发布变慢

钝悟...大约 20 分钟笔记设计设计架构微服务
2