前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dubbo 学习笔记(7)

Dubbo 学习笔记(7)

作者头像
发布2019-01-07 12:57:27
3870
发布2019-01-07 12:57:27
举报
文章被收录于专栏:WD学习记录WD学习记录

参考:http://dubbo.apache.org/zh-cn/docs/dev/design.html

/dev-guide/images/dubbo-framework.jpg
/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是会话域,它持有调用过程中的变量,比如方法名,参数等。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年12月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档