博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dubbo 学习笔记(7)
阅读量:4171 次
发布时间:2019-05-26

本文共 1583 字,大约阅读时间需要 5 分钟。

参考:

/dev-guide/images/dubbo-framework.jpg

  • 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调用,以Invacation,Result为中心,扩展接口为Protocol,Invoker,Exporter
  • exchange信息交换层:封装请求响应模式,同步转异步,以Request、Response为中心,扩展接口为Exchanger,ExchangeChannel,ExchangeClient,ExchangeServer
  • transort网络传输层:抽象mina和netty为统一接口,以Message为中心,扩展接口为Channel,Transporter,Client,Server,Codec
  • serialize数据序列化层:可复用的一些工具,扩展接口为Serialization,ObjectInput,ObjectOutput,ThreadPool

关系说明:

  • 在RPC中,Protocol是核心层,也就是只要有Protocol+Invoker+Exporter就可以完成非透明的RPC调用,然后在Invoker的主过程上Filter拦截点。
  • Cluster是外围概念,所以Cluster的目的是将多个Invoker伪装成一个Invoker,这样其他人只要关注Protocol层的Invoker即可,加上Cluster或去掉Cluster对其它层都不会造成影响,因为只有一个提供者时,是不需要Cluster的。
  • Proxy层封装了所有接口的透明化代理,而在其它才能够都以Invoker为中心,只有到了暴露给用户使用时,采用Proxy将Invoker转成接口,或将接口实现转成Invoker,也就是去掉Proxy层RPC是可以Run的,只是不那么透明,不那么看起来像调本地服务一样调远程服务。
  • Remoting的实现是Dubbo协议的实现,如果选择RMI协议,整个Remoting都不会用上,Remoting内部再划分为Transport传输层和Exchange信息交换层,Transport层只负责单向消息传输,是对Mina、Netty、Grizzly的抽象,它也可以扩展UDP传输,而Exchange层是在传输层之上封装了Request-Response语义。
  • Registry和Monitor实际上不算一层,而是独立的节点。

领域模型:

在Dubbo的核心领域模型中:

  • Protocol是服务域,它是Invoker暴露和引用的主功能入口,它负责Invoker的生命周期管理
  • Invoker是实体域,是Dubbo的核心模型,其它模型都向它凯龙,或转换成它,它代表一个可执行体,可向它发起invoke调用,它有可能是一个本地的实现,也可能是一个远程的实现,也可能是一个集群的实现。
  • Invocation是会话域,它持有调用过程中的变量,比如方法名,参数等。

 

 

转载地址:http://pgyai.baihongyu.com/

你可能感兴趣的文章
2018.4.37
查看>>
2018.4.38
查看>>
2018.4.39
查看>>
2018.4.40
查看>>
2018.5.27
查看>>
2018.5.51
查看>>
2018.5.52
查看>>
《python基础教程》答案(第四章)
查看>>
2018.5.53
查看>>
2018.5.54
查看>>
2018.5.55
查看>>
2018.5.58
查看>>
2018.12.5
查看>>
2018.12.6
查看>>
人智导(四):约束满足问题
查看>>
2018.12.7
查看>>
2018.12.8
查看>>
2018.12.9
查看>>
2018.12.29
查看>>
2018.12.31
查看>>