侧边栏壁纸
博主头像
coydone博主等级

记录学习,分享生活的个人站点

  • 累计撰写 306 篇文章
  • 累计创建 51 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Dubbo设计原理

coydone
2022-06-05 / 0 评论 / 0 点赞 / 332 阅读 / 1,074 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-04-27,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Dubbo设计原理

  • config 配置层:对外配置接口,以 ServiceConfig、ReferenceConfig 为中心,可以直接初始化配置类,也可以通过 spring 解析配置生成配置类。

  • proxy 服务代理层:服务接口通过代理,生成服务的客户端Stub和服务器端Skeleton,以 ServiceProxy 为中心,扩展接口为 ProxyFactory。

  • registry 注册中心层:封装服务地址的注册与发现,以服务 URL 为中心,扩展接口为 RegistryFactory、Registry、RegistryService。

  • cluster 路由层:封装多个提供者的路由及负载均衡,并桥接注册中心,以 Invoker 为中心,扩展接口为 Cluster、Directory、Router、LoadBalance。

  • monitor 监控层:RPC 调用次数和调用时间监控,以 Statistics 为中心,扩展接口为 MonitorFactory、Monitor、MonitorService。

  • protocol 远程调用层:封装 RPC 调用,以 Invocation、Result 为中心,扩展接口为 Protocol、Invoker、Exporter。

  • exchange 信息交换层:封装请求响应模式,同步转异步,以 Request、Response 为中心,扩展接口为 Exchanger、ExchangeChannel、ExchangeClient、ExchangeServer。

  • transport 网络传输层:抽象 mina 和 netty 为统一接口,以 Message 为中心,扩展接口为 Channel、Transporter、Client、Server、Codec。

  • serialize 数据序列化层:可复用的一些工具,扩展接口为 Serialization、ObjectInput、ObjectOutput、ThreadPool。

启动加载

找到BeanDefinitionParser

这个是spring工厂提供的解析XML和注解的全局接口,只要实现了这个接口的配置,那么在XML里面定义的标签就可以被解析。

public interface BeanDefinitionParser {
    @Nullable
    BeanDefinition parse(Element var1, ParserContext var2);
}

DubboBeanDefinitionParser实现了这个接口,是用于来解析配置里面的信息。

在DubboBeanDefinitionParser构造方法的前面执行了DubboNamespaceHandler。

0

评论区