Dubbo 是一个开源的高性能 Java RPC 框架,其架构设计遵循分层思想,通过不同的层次分离关注点,使得整个框架更加模块化、可扩展和灵活。Dubbo 的整体架构通常可以分为以下几层:服务接口层(Service Interface Layer)、配置层(Configuration Layer)、服务代理层(Service Proxy Layer)、服务注册与发现层(Service Registry Layer)、集群容错层(Cluster Layer)、协议层(Protocol Layer)和传输层(Transport Layer)。下面详细介绍每一层的功能和作用。
1. 服务接口层 (Service Interface Layer)
功能: 服务接口层是 Dubbo 框架的最顶层,主要负责定义服务提供者(Provider)和服务消费者(Consumer)之间的接口。该层不涉及任何具体实现,仅定义了服务的契约(Contract),即服务的名称、方法、参数类型和返回类型等。
作用:
定义服务接口,确保服务提供者和消费者之间的通信契约一致。
通过接口的方式隔离服务调用,使得服务消费者只依赖于接口,而不依赖于服务的具体实现。
典型示例:
public interface HelloService {
String sayHello(String name);
}
2. 配置层 (Configuration Layer)
功能: 配置层负责处理各种配置,包括服务提供者和消费者的配置、注册中心的配置、协议的配置等。Dubbo 提供了多种配置方式,包括 XML 配置、注解配置和 API 配置,开发者可以根据需求选择适合的配置方式。
作用:
统一管理服务相关的配置项,支持多种配置方式的灵活选择。