范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

一文了解Dubbo的代码架构

  图例说明: 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以剥离上层被复用,其中,Service 和 Config 层为 API,其它各层均为 SPI。 图中绿色小块的为扩展接口,蓝色小块为实现类,图中只显示用于关联各层的实现类。 图中蓝色虚线为初始化过程,即启动时组装链,红色实线为方法调用过程,即运行时调时链,紫色三角箭头为继承,可以把子类看作父类的同一个节点,线上的文字为调用的方法。 各层说明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  关系说明在 RPC 中,Protocol 是核心层,也就是只要有 Protocol + Invoker + Exporter 就可以完成非透明的 RPC 调用,然后在 Invoker 的主过程上 Filter 拦截点。 图中的 Consumer 和 Provider 是抽象概念,只是想让看图者更直观的了解哪些类分属于客户端与服务器端,不用 Client 和 Server 的原因是 Dubbo 在很多场景下都使用 Provider, Consumer, Registry, Monitor 划分逻辑拓扑节点,保持统一概念。 而 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-common 公共逻辑模块 :包括 Util 类和通用模型。 dubbo-remoting 远程通讯模块 :相当于 Dubbo 协议的实现,如果 RPC 用 RMI协议则不需要使用此包。 dubbo-rpc 远程调用模块 :抽象各种协议,以及动态代理,只包含一对一的调用,不关心集群的管理。 dubbo-cluster 集群模块 :将多个服务提供方伪装为一个提供方,包括:负载均衡, 容错,路由等,集群的地址列表可以是静态配置的,也可以是由注册中心下发。 dubbo-registry 注册中心模块 :基于注册中心下发地址的集群方式,以及对各种注册中心的抽象。 dubbo-monitor 监控模块 :统计服务调用次数,调用时间的,调用链跟踪的服务。 dubbo-config 配置模块 :是 Dubbo 对外的 API,用户通过 Config 使用Dubbo,隐藏 Dubbo 所有细节。 dubbo-container 容器模块 :是一个 Standlone 的容器,以简单的 Main 加载 Spring 启动,因为服务通常不需要 Tomcat/JBoss 等 Web 容器的特性,没必要用 Web 容器去加载服务。
  整体上按照分层结构进行分包,与分层的不同点在于: Container 为服务容器,用于部署运行服务,没有在层中画出。 Protocol 层和 Proxy 层都放在 rpc 模块中,这两层是 rpc 的核心,在不需要集群也就是只有一个提供者时,可以只使用这两层完成 rpc 调用。 Transport 层和 Exchange 层都放在 remoting 模块中,为 rpc 调用的通讯基础。 Serialize 层放在 common 模块中,以便更大程度复用。 依赖关系
  图例说明: 图中小方块 Protocol, Cluster, Proxy, Service, Container, Registry, Monitor 代表层或模块,蓝色的表示与业务有交互,绿色的表示只对 Dubbo 内部交互。 图中背景方块 Consumer, Provider, Registry, Monitor 代表部署逻辑拓扑节点。 图中蓝色虚线为初始化时调用,红色虚线为运行时异步调用,红色实线为运行时同步调用。 图中只包含 RPC 的层,不包含 Remoting 的层,Remoting 整体都隐含在 Protocol 中。 调用链
  展开总设计图的红色调用链,如下:
  暴露服务时序
  展开总设计图右边服务提供方暴露服务的蓝色初始化链,时序图如下:
  引用服务时序
  展开总设计图左边服务消费方引用服务的绿色初始化链,时序图如下:
  领域模型
  在 Dubbo 的核心领域模型中: Protocol 是服务域,它是 Invoker 暴露和引用的主功能入口,它负责 Invoker 的生命周期管理。 Invoker 是实体域,它是 Dubbo 的核心模型,其它模型都向它靠拢,或转换成它,它代表一个可执行体,可向它发起 invoke 调用,它有可能是一个本地的实现,也可能是一个远程的实现,也可能一个集群实现。 Invocation 是会话域,它持有调用过程中的变量,比如方法名,参数等。 基本设计原则采用 Microkernel + Plugin 模式,Microkernel 只负责组装 Plugin,Dubbo 自身的功能也是通过扩展点实现的,也就是 Dubbo 的所有功能点都可被用户自定义扩展所替换。 采用 URL 作为配置信息的统一格式,所有扩展点都通过传递 URL 携带配置信息。

张伟丽从被打得想退学到成为世界级拳王,母亲从不看其比赛头条创作挑战赛2022年11月13日对张伟丽来说,绝对是个难忘的日子。这天她在UFC281冠军赛上,以一记漂亮的裸绞,终结了与顶级摔跤手卡拉埃斯帕扎的比赛,重新夺回了金腰带。她夺金科尔穆迪犯规和失误过多暂时跌出轮换北京时间11月14日,在勇士与国王的比赛开始前,勇士主帅史蒂夫科尔接受了媒体采访。我对穆迪十分有信心,相信他能找到回到轮换的方式,科尔赛前谈到最近几场比赛跌出轮换的摩西穆迪,我已经刘国梁享正师级待遇,薪水却不及孙颖莎14,背后原因令人意外刘国梁享正师级待遇,薪水却不及孙颖莎14,背后原因令人意外作为国乒现任掌门人,刘国梁的大名想必中国观众都不会陌生,这个不懂球的胖子在运动员时期一共拿到过44个冠军金牌,其中还有九个火爆全网的早C晚A护肤大法,你了解吗?一年一度的双十一各位宝们都囤了什么呢?精致的猪猪女孩们护肤品自然是少不了的但是在这内卷的时代连男生们都开始早C晚A刷酸风了早C晚A刷酸是真的有用还是闭眼吹?中山市小榄人民医院皮肤科近视可以通过佩戴低度数来慢慢恢复吗?高度近视本身是不会造成黑眼圈的,如果有出现黑眼圈应该去考虑到自身的原因,要去除黑眼圈,首先得学会辨别黑眼圈的类型。第一种血液型黑眼圈最常见的一种黑眼圈类型。一般来说,只会在下眼睑出今蝉祛痘长痘怎么能离开痘印?这两种方法可能对你有帮助在长痘之后,留下痘印,我们能做的就是找到真正的有效地到痘印,本文将介绍一些淡化痘印的小方法,希望对您有所帮助。1激光可以消除痘印如果痘印很重或者长时间不能自行消失,那么我们可以尝试世界十大名表历史与排名?百达翡丽的掐丝珐琅工艺热带雨林名贵手表一直是成功人士的标准,受到很多人,尤其是男士的喜爱。那么,世界十大名表有哪些呢?百达翡丽(PatekPhilippe)爱彼(AudemarsP午评沪指涨0。75创业板指跌0。51,北向资金净买入超130亿元,医药行业强势爆发金融界11月14日消息人民币汇率大反弹叠加房地产市场迎来利好,今日A股三大指数集体高开,盘初一小时市场进一步冲高后逐步回落,创业板指翻绿,随后A股再度震荡上扬。沪指重返3100点,早上刚刮了胡子,隔早就长出来了,胡须长太快意味着什么?导语在现如今的日常生活里,走在大街上很少能够见到男性朋友会留起满脸的胡子或者是山羊胡,大部分的男性朋友都会把自己脸上的胡子刮得干干净净,这样才显得自己更有魅力,也有干干净净的感觉。头发多久洗一次最好?是每天洗头还是两三天洗头?头发是我们身体上最常见的一部分毛发它跟身体其他部分的毛发,不一样的地方在于头发可以无限长长,而且剪了之后他依旧会茁壮成长,很多人做了实验,如果把自己的头发全部剃光,多久才能长出来,有些人第一次见面,就知道已是永别人来人往的世界总免不了见与不见,走走停停的路途总免不了愿与不愿,起起伏伏的境遇总免不了甘与不甘,缘来缘去的情感总免不了爱恨纠葛,一次萍水相逢的相遇,就明白你我不同。一次偶然的转身,
美国卫星或坠落朝鲜半岛附近韩国政府发布预警据韩国国际广播电台(KBS)报道,韩国科学技术信息通信部表示,美国的地球观测卫星ERBS(地球辐射收支卫星)有可能坠落在朝鲜半岛附近。该部门于1月9日早上7时发布预警,并召集太空危涉嫌夸大宣传续航能力特斯拉在韩国被罚韩国反垄断监管机构当地时间1月3日宣布,决定对美国电动汽车制造商特斯拉处以28。5亿韩元,约合人民币1540万元的罚款。处罚理由是特斯拉发布了虚假夸大且具有欺骗性的广告内容。韩国反愉健美冬季护肤流程,你真的知道吗?两张图,让你轻松记住!进入冬天一些时日,很多宝宝的皮肤又开始不安分了,因为寒冷的气候再加上有时候凌烈的冬风,给皮肤带来的问题不仅仅是把小脸吹得通红,还有全身从上到下的干燥感,皮肤紧绷干裂掉皮,甚至有可能嗜酒的韩国人推出自动烧酒机,让喝酒也有仪式感极爱嗜酒的韩国,烧酒属于必不可少之饮品,日前有品牌竟然推出自动烧酒机,只要打开烧酒装上专属仪器,杯子一靠近,就会自动感应供应烧酒,令酒鬼爱不释手。其浅蓝色设计呼应着品牌推出的烧酒瓶曲面屏VS直面屏,该如何选择?看看这你就明白了随着曲面屏的使用,越来越多的旗舰机选择了使用曲面屏,给人一种高科技感,曲面屏的曲面程度也不完全一样,有的曲率高些,有些低些。我也是使用的两年低曲率曲面屏了,给大家分析一下优缺点。曲电脑浏览器书签如何通用?通过电脑的浏览器书签,我们可以高效地访问我们需要的网站,这样一来记住网站的需求交给浏览器就好了!本期简介如何让浏览器的书签在电脑和其他浏览器之间通用呢?适用情况1重装系统之前,备份比RTX3090Ti便宜,还比RTX3090Ti能打!影驰GeForceRTX4070Ti星曜OC显卡评测1引言规格对比显卡外观赏析引言RTX40系显卡发布已经有段时日了,但在售的一直是RTX4090和RTX4080这样的旗舰卡,大多数玩家所期待的甜品卡一直没有出现。现在老黄终于推出了每日一个护肤小知识,唇部护理了解一下大家好啊,今天我们说一说唇部的护理吧,秋冬季节的时候,嘴唇的皮肤会因为经常暴露在外,所以唇部就如同我们的第二张脸,就更应该注重护理和保养了!1深层清洁实际上护唇的方法和护肤是一样的许多人喜欢极简风,却穿不出它的精髓,关键挑款搭配不到位极简风在当下拥有很多受众,特别是在中年人这一群体中,随着年龄增长,很多人会逐渐明白衣品提升其实就是不断做减法的过程。人到中年,简约高级的搭配才是最佳选择,不复杂不费劲又高级,与追求450岁的女人不穿条豆腐裤,都不知道原来自己这么洋气优雅最近小编正在追无限超越班,听说是一档考验演员们的综艺节目,别的内容我们先不讨论,薛凯琪的颜值穿搭真的是狠狠击中我心!41岁的年纪还是被称作少女,虽然在节目中这个少女一词被诟病,但不克丽缇娜凝时驻颜套组,让皮肤焕然新生简单来说,多数人会经历衰老的过程,而慢慢变老是多么幸福的一件事情,但是对于年轻人来说,谁又想快速老去呢?不,我们不想。那么有办法能够减缓衰老的速度,先让我们享受青春,再慢慢老去。2