Dubbo-go 服务层级

2022-04-13 17:31 更新

Dubbo-go 服务层级为两个级别:分别是应用级别(App Level)和接口级别(Interface Level),该服务分层与框架配置结构息息相关。

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

1. 应用级别组件

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

应用级别的主要组件如下:

  • 应用信息模块
    包含应用维度相关信息,包括应用名、版本号、数据上报方式等
  • Consumer 模块
    Consumer 模块负责客户端相关信息,包括一个或多个引用(Reference)结构,以及超时、客户端过滤器(consumer filter)等相关信息。
  • Provider 模块
    Provider 模块负责服务端相关信息,包括一个或多个服务(Service)结构、服务端过滤器(provider filter)等相关信息。
  • 注册中心(Registry)模块
    注册中心模块负责定义好所要使用的一系列注册中心,例如框架支持的ZK、Nacos、ETCD等中间件。应用级别的注册模块只负责声明,由接口级别的组件进行引用,引用时以用户自定义的注册中心ID(registryID) 作为索引。
  • 协议(Protocol)模块
    协议模块只存在于服务端。
    协议模块关心服务的暴露信息,例如协议名、服务监听IP、端口号等信息。协议模块属于应用级别,只负责声明,由接口级别的组件进行引用,引用时以用户自定义的协议ID(protocolID) 作为索引。
  • 元数据中心模块
    元数据中心类似于注册中心模块,负责声明框架需要使用的元数据中心,从而将元数据成功上报。
  • 配置中心模块
  • 路由模块
  • 日志模块
  • 监控模块

2. 接口级别组件

  • 服务(Service)模块
    服务模块被使用于任何暴露的服务,声明接口暴露所需的信息,包括例如接口名、协议、序列化方式等,负责单个服务接口的暴露。
  • 引用(Reference)模块
    引用模块被使用于需要调用的远程服务的客户端,其声明了需要请求接口所需的信息,包括例如接口名、协议、序列化方式等、负责特定协议的抽象,参与客户端的生成。

3. 说明

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



以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号