-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDubbo-go源码模块解析
33 lines (9 loc) · 3.22 KB
/
Dubbo-go源码模块解析
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
* cluster模块:集群管理相关功能,包括负载均衡、路由、集群基础数据管理、集群管理策略(包括:快速失败策略、区域集群管理策略)等。其中最主要的目的是选择出最符合条件调用的远端实例,并提供丰富的接口,能让用户实现自己的集群管理逻辑。
* common模块:公共能力相关功能,包括静态代理、配置文件解析、日志组件、扩展(Dubbo-go 用于扩展其中能力的模块,后续章节会解释)。其目的在于将框架中公共能力聚合到一个模块中,方便其他模块使用,避免造成循环引用。
* config_center模块:远程配置中心管理相关功能,该模块对链接远程配置中心与处理配置文件进行抽象,与读取配置文件的过程进行解藕。实现配置文件与服务治理规则在远程配置中心存放方式。目前支持业界主流的配置中心,如:apollo、nacos、ZooKeeper。配置中心主要承担了两个作用:启动配置的集中式存储与服务治理规则的存储与通知。
* filter模块 :过滤器相关功能,该模块实现的是一个开源中间件很常见的功能,其主要作用是`给用户方便的在请求之前或者响应之后方便的扩展需求`。通常的应用场景在于服务鉴权、服务流控、链路跟踪、收集服务信息、熔断等。
* metadata模块:元数据中心相关功能,该模块在 Dubbo-go 1.5.x 之后新增的一个为应用级服务发现提供元数据的基础模块。目前支持的元数据中心主要与远程配置中心支持的大体相同,与此同时,也支持本地元数据中心,包括内存及磁盘文件。元数据中心的数据可以被用于服务测试,服务 MOCK 等功能。
* metrics模块:收集服务指标相关功能,该模块实现的是对服务可见性。Dubbo-go 使用了与 Dubbo (使用 alibaba/metric)不一样的实现方案,Dubbo-go 选择的是业界主流的 prometheus 。使其更容易适配企业原有的组件,降低运维难度及学习成本。
* protocol模块:协议相关功能,Dubbo-go 的核心模块之一。包括网络协议与数据序列化协议绑定、实现数据序列化是该模块最主要负责的功能。通过对协议暴露、协议引用、调用状态、调用方法与响应结构的抽象,让方法调用变得透明,不需要关心正在调用方法的底层实现逻辑。除此之外,更加方便快速的扩展新的网络及数据序列化协议。
* Registy模块:注册中心相关功能,Dubbo-go 的核心模块之一。Dubbo-go 的注册中心模块相对复杂,在保留接口级服务发型模型的兼容基础上,新版本(1.5.x)支持应用级服务发现模型。通过对注册中心中服务注册与发现进行抽象,使注册中心可以自由扩展,如:consul 目录为 consul 注册中心的基本实现。
* remoting模块:远程通讯相关功能,Dubbo-go 的核心模块之一。通过对网络传输层的单向消息传输实现的抽象,即由 Client 端发出请求消息,Server 端负责接收消息。响应消息从 Server 端发出,Client 端负责接收响应消息。从而达到传输层快速扩展的目的。