1.Doubbo的框架设计
1)使用流程图
2)项目结构
dubbo-common
公共逻辑模块:提供工具类和通用模型。dubbo-remoting
远程通信模块:提供通用的客户端和服务端的通讯功能。dubbo-rpc
远程调用模块:抽象各种协议,以及动态代理,只包含一对一的调用,不关心集群的管理。dubbo-cluster
集群模块:将多个服务提供方伪装为一个提供方,包括:负载均衡, 集群容错,路由,分组聚合等。集群的地址列表可以是静态配置的,也可以是由注册中心下发。dubbo-registry
注册中心模块:基于注册中心下发地址的集群方式,以及对各种注册中心的抽象。dubbo-monitor
监控模块:统计服务调用次数,调用时间的,调用链跟踪的服务。dubbo-config
配置模块:是 Dubbo 对外的 API,用户通过 Config 使用Dubbo,隐藏 Dubbo 所有细节。dubbo-container
容器模块:是一个 Standlone 的容器,以简单的 Main 加载 Spring 启动,因为服务通常不需要 Tomcat/JBoss 等 Web 容器的特性,没必要用 Web 容器去加载服务。dubbo-filter
过滤器模块:提供了内置的过滤器。dubbo-plugin
过滤器模块:提供了内置的插件。
1.Doubbo的API配置
1)结构简图
ApplicationConfig:com.alibaba.dubbo.config.ApplicationConfig
,应用配置
RegistryConfig:com.alibaba.dubbo.config.RegistryConfig
,注册中心配置。
ModuleConfig:com.alibaba.dubbo.config.ModuleConfig
,模块信息配置。
MonitorConfig:com.alibaba.dubbo.config.MonitorConfig
,监控中心配置。
ArgumentConfig:com.alibaba.dubbo.config.ArgumentConfig
,方法参数配置。
ProtocolConfig:com.alibaba.dubbo.config.ProtocolConfig
,服务提供者协议配置。
AbstractMethodConfig:com.alibaba.dubbo.config.AbstractMethodConfig
,方法级配置的抽象类。
MethodConfig:com.alibaba.dubbo.config.MethodConfig
,继承 AbstractMethodConfig ,方法级配置。
AbstractInterfaceConfig:com.alibaba.dubbo.config.AbstractInterfaceConfig
,继承 AbstractMethodConfig ,抽象接口配置类。
AbstractServiceConfig:com.alibaba.dubbo.config.AbstractServiceConfig
,实现 AbstractInterfaceConfig ,抽象服务配置类。
ProviderConfig:com.alibaba.dubbo.config.ProviderConfig
,实现 AbstractServiceConfig ,服务提供者缺省值配置。
ServiceConfig:com.alibaba.dubbo.config.ServiceConfig
,服务提供者暴露服务配置类。