Dubbo 的应用和接口

Dubbo 的应用和接口

Dubbogo 服务级别

Dubbogo 有 App Level 和 Interface Level 两个服务级别,它们与框架配置结构息息相关。

如下图所示,可以看到应用级别的组件用浅红色标注,接口级别的组件用浅蓝色标注

img

1. 应用级组件

应用级组件的特点:被当前应用的所有接口级组件共享。

应用级的主要组件如下

  • 应用信息模块

    包含应用维度相关的信息,包括应用名、版本号、数据上报方式等。

  • 消费者模块

    Consumer 模块负责客户端相关的信息,包括一个或多个 Reference 结构,以及超时时间、消费者过滤器等相关信息。

- 提供者模块

Provider 模块负责服务端相关的信息,包括一个或多个服务(Service)结构,服务端过滤器(provider filter)等相关信息。

  • 注册中心模块

    注册中心模块负责定义一系列要使用的注册中心,例如框架支持的 ZK、Nacos、etcd 等中间件。应用级的注册模块只负责声明,由接口级的组件引用,引用时使用用户自定义的注册中心 ID(registryID)作为索引。

  • 协议模块

    协议模块只存在于服务端。

    协议模块关心的是服务的暴露信息,例如协议名、服务监听 IP、端口号等信息。协议模块属于应用级,只负责声明,由接口级的组件以用户自定义的协议 ID(protocolID)作为索引进行引用。

  • 元数据中心模块

    元数据中心与注册中心模块类似,负责声明框架需要使用的元数据中心,以便元数据能够上报成功。

  • 配置中心模块

  • 路由模块

  • 日志模块

  • 监控模块

2. 接口级组件

  • 服务模块

    服务模块用于任何一个暴露的服务,声明接口暴露所需的信息,包括接口名、协议、序列化方式等,负责单个服务接口的暴露。

  • 引用模块

    饮用模块由需要调用的远程服务的客户端使用,声明请求接口所需的信息,包括接口名、协议、序列化方式等,负责具体协议的抽象,参与客户端的生成。

3. 说明

暴露的服务是在接口级别的,一个用户自定义的 Provider Struct/一个用户自定义的 Consumer Struct 对应一个 Service/Reference 模块,一个应用可以同时拥有 Consumer 模块和 Provider 模块,所以可以同时存在多个 Service/Reference 模块。


上次修改时间:2023 年 2 月 23 日: SEO / 图片 Alt 更新 (35090e3f9b4)