dubbo架构概览-dubbo源码解析
1.每一个层次之间基本通过spi的方式来生成调用的。
2service/config层
2.1服务发布通过serviceConfig来完成
服务消费通过referenceConfig来完成。
在创建这两个的过程中,还可以通过创建ProtocolConfig来指定协议,
MethodConfig来指定方法相关参数。
3proxy层。对于消费者而言,proxy作为消费者代理,将本地调用转换为wrapper类。
4.registry层。服务注册中心层。
5.cluster层。
当一个服务有多个提供者时,消费者需要有一定的路由,负债均衡,集群容错的考量。
6.monitor层用来统计rpc调用次数和调用耗时。
7.protocol层。主要封装了rpc调用逻辑,通过exporter,invoker的创建,完成服务的发布和引用。实现类是dubboProtocol.
- dubbo服务暴露源码流程
(1)容器创建完之后会触发ServiceBean(实现了applicationLIstener接口)类中的ContextRefreshedEvent事件,执行export()方法。
(2)export()方法会调用ServiceConfig中的doExport()方法,这个方法会调用doExportUrls()方法,进而doExportUrlsFor1Protocol()方法。
(3)doExportUrlsFor1Protocol()方法中会利用反射构造invoker,这个invoker封装了服务实现类注册的地址及端口相关信息。同时执行protocol.export()方法。
(4)protocol.export()中的protocol有两个实现类,这个是最关键的,一个是RegistryProtocol一个是DubboProtocol,调用这个方法的时候会首先调用RegistryProtocol类,RegistryProtocol类中的export()方法会调用doLocalExport()方法通知DubboProtocol执行openServer(url)方法进行服务的开启,其实就是开启一个netty服务。同时export()方法会调用ProviderConsumerRegTable.registerProvider()方法进行注册表的缓存以及服务的注册。
- dubbo服务发现源码流程
在ReferenceBean->getObject()->init()中会调用createProxy()方法用来创建代理对象。
在createProxy()中会执行一个refprotocol.refer()方法,这里refprotocol同样有两个实现类,一个是RegistryProtocol,一个是DubboProtocol
RegistryProtocol负责注册信息,订阅信息,构造invoker代理类,并将消费者对于的invoke缓存到注册列表中。
DubboProtocol主要负责connect/getClients()连接获取客户端,等待与服务端通信
dubbo服务调用源码流程
dubbo架构概览-dubbo源码解析相关推荐
- Dubbo架构设计与源码解析(一) 架构设计
作者:黄金 一.架构演变 单应用架构 ----> 垂直架构 ----> 分布式架构 ----> 微服务架构 ----> 云原生架构 二.Dubbo总体架构 1.角色职能 • C ...
- Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战
Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战 Java生鲜电商平台- 什么是秒杀 通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动 比如说京东秒杀,就是一种定时定量秒杀,在规定 ...
- Java生鲜电商平台-促销系统的架构设计与源码解析
Java生鲜电商平台-促销系统的架构设计与源码解析 说明:本文重点讲解现在流行的促销方案以及源码解析,让大家对促销,纳新有一个深入的了解与学习过程. 促销系统是电商系统另外一个比较大,也是比较复杂的系 ...
- Java生鲜电商平台-电商会员体系系统的架构设计与源码解析
Java生鲜电商平台-电商会员体系系统的架构设计与源码解析 说明:Java生鲜电商平台中会员体系作为电商平台的基础设施,重要性不容忽视.我去年整理过生鲜电商中的会员系统,但是比较粗,现在做一个最好的整 ...
- Java生鲜电商平台-商品中心的架构设计与源码解析(小程序/APP)
Java生鲜电商平台-商品中心的架构设计与源码解析(小程序/APP) 说明:Java生鲜电商平台中,由于商品的架构很大程度决定了电商的扩展性与伸缩性.对此根据自己多年的生鲜电商经验,整理了以下的商品中 ...
- Dubbo 实现原理与源码解析系列 —— 精品合集
摘要: 原创出处 http://www.iocoder.cn/Dubbo/good-collection/ 「芋道源码」欢迎转载,保留摘要,谢谢! 1.[芋艿]精尽 Dubbo 原理与源码专栏 2.[ ...
- 聊聊Dubbo - Dubbo可扩展机制源码解析
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 在Dubbo可扩展机制实战中,我们了解了Dubbo扩展机制的一些概念,初探了Dubbo中LoadBalance的实现, ...
- 第三章 dubbo内核之ioc源码解析
dubbo的IOC具体实现在:T injectExtension(T instance)方法中.该方法只在三个地方被使用: 1 createAdaptiveExtension() 2 --inject ...
- 电商平台 高并发 微服务 方案_Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战...
Java生鲜电商平台- 什么是秒杀 通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动 比如说京东秒杀,就是一种定时定量秒杀,在规定的时间内,无论商品是否秒杀完毕,该场次的秒杀活动都会结束.这种 ...
- Java生鲜电商平台-优惠券系统的架构设计与源码解析
电商后台:实例解读促销系统 电商后台系统包括商品管理系统.采购系统.仓储系统.订单系统.促销系统.维权系统.财务系统.会员系统.权限系统等,各系统之间相互关联.相互依托,为前端的正常业务流转建立结实稳 ...
最新文章
- http响应Last-Modified和ETag以及Apache和Nginx中的配置
- JavaFX BorderPane布局代码示例
- CSS的六种垂直居中
- 使用Spring Integration Java DSL与Rabbit MQ集成
- va_list va_start va_end的使用
- data structure最短路径问题
- Ubuntu关闭防火墙
- Qtum DGP 分布自治协议技术详解
- Java之——被人遗忘的Java8的八个功能
- codevs 5960 信使
- 2022紫光展锐数字芯片提前批笔试
- Pancake的IFO解读
- [转贴]COM Interop 注册相关
- 安卓bmi项目_Android之BMI(身体质量指数)计算器
- git处理 Update failed cannot lock
- 网沙(爱玩啥)韩顺平.循序渐进学.java.从入门到精通系列视频分享
- java程序设计蜘蛛纸牌_JAVA蜘蛛纸牌
- 股票交易费及利润计算器
- RPA机器人:电商好帮手
- java卡片布局 show没用_[showjava怎么用]java卡片布局中show的正确使用方法