dubbo
普通网友
这个作者很懒,什么都没留下…
展开
-
Dubbo 源码分析15 kryo序列化实现原理
本文主要梳理Kryo序列化基本实现。重点剖析Kryo#writeClassAndObject、Kryo#readClassAndObject方法。 1、源码分析Kryo#writeClassAndObject 代码@1:开始序列化, 将dept自增,表示当前深度,因为在序列化一个对象时,该方法有可能会被递归调用,每递归调用增加1,一次调用结束后在finally字句中自减。 代码@...原创 2019-09-22 10:13:02 · 459 阅读 · 0 评论 -
Dubbo 源码分析12 网络通信篇
以Dubbo协议为例,DubboProtocol#refer中,在创建Invoker时,通过getClient方法,开始Client(连接的)创建过程,先重点看一下: 代码@1:参数URL,服务提供者URL。 代码@2:获取< dubbo:reference connections = “” />,默认0表示客户端对同一个服务提供者的所有服务,使用共享一个连接,如果该值...原创 2019-09-22 10:12:22 · 226 阅读 · 1 评论 -
Dubbo 源码分析19 异步调用与事件回调机制
2、源码分析异步调用与事件回调机制 在Dubbo中,引入特定的过滤器FutureFilter来处理异步调用相关的逻辑,其定义如下:@Activate(group = Constants.CONSUMER)public class FutureFilter implements Filter {}group=CONSUMER说明该过滤器属于消费端过滤器。 接下来从从in...原创 2019-09-22 10:13:19 · 236 阅读 · 0 评论 -
dubbo 知识点01
为什么要用 Dubbo?随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架。就这样为分布式系统的服务治理框架就出现了,Dubbo 也就这样产生了。Dubbo 是什么?Dubbo 是一款高性能...原创 2020-03-22 17:37:12 · 88 阅读 · 0 评论 -
Dubbo 源码分析09 网络通讯01
Dubbo 协议创建服务端1.serviceBean 创建对应的proxy代理,invoker2.然后通过协议export出来,然后创建对应的server,bind方法绑定到url,成为一个exchanger,再包装成为一个HeadExchager。3.进一步bind,url和解码器,成为一个Transporter,新建成为一个NettyTransporter和NettyS...原创 2019-09-21 15:05:10 · 70 阅读 · 0 评论 -
Dubbo 源码分析14 Dubbo序列化 + kyro高性能对象序列化协议
我们可以看到,Dubbo 是一种相对优秀的实现方式。虽然,在最新版本的 Dubbo 项目中,dubbo-serialize模块已经去除了 Dubbo 序列化的实现,猜测因为引入 Kryo 和 FST ,相比来说更优秀。Dubbo序列化支持java、compactedjava、nativejava、fastjson、fst、hessian2、kryo,其中默认hessian2。...原创 2019-09-22 10:12:42 · 323 阅读 · 0 评论 -
Dubbo 源码分析06 服务注册 && 注册中心
执行入口,RegistryProtocol#refer ----> doRefer方法。1.构建RegistryDirectory对象,基于注册中心动态发现服务提供者2.为RegistryDirectory设置注册中心、协议。3.获取服务消费者的配置属性,构建消费者url4.为消息消费者添加category=providers,configurators,routers属性后...原创 2019-09-21 11:50:02 · 124 阅读 · 0 评论 -
Dubbo 源码分析05 服务调用
Invocation就是用一个Bean存储当前调用方法的参数,其本质就是一个普通的Bean而已。Invoker:1、Class getInterface() :获取服务提供者的接口。Result invoke(Invocation invocation) throws RpcException :调用服务,返回调用结果++++++++++++++++++++++++++++++++...原创 2019-09-21 11:29:13 · 85 阅读 · 0 评论 -
Dubbo 源码分析03 服务提供者provider注册流程 && 服务暴露
继续看服务的暴露1.入参为invoker,然后从invoker中获取providerUtl,解析出key2.从本地缓存bounds中,获取exporter,如果没有,就先根据入参originInvoker生成invokerDelegete3.然后调用DubboProtocol.export(), 还是先从invoker中获取url,根据url生成serviceKey,再根据url和...原创 2019-09-21 10:55:34 · 143 阅读 · 0 评论 -
Dubbo 源码分析 01 配置相关
dubbo-config-api,实现了API 配置和属性配置功能。 dubbo-config-spring,实现了XML 配置和注解配置功能。依赖图如下:dubbo 配置 知识点总结1. 配置概述服务发现:表示该配置项用于服务的注册与发现,目的是让消费方找到提供方。 服务治理:表示该配置项用于治理服务间的关系,或为开发测试提供...原创 2020-01-04 10:06:09 · 130 阅读 · 0 评论 -
Dubbo 源码分析04 服务消费端consumer 启动流程
入口是ReferenceBean#afterPropertiesSet Step1:如果consumer为空,说明dubbo:reference标签未设置consumer属性,如果一个dubbo:consumer标签,则取该实例,如果存在多个dubbo:consumer 配置,则consumer必须设置,否则会抛出异常:“Duplicate consumer configs”。 Step...原创 2019-09-21 11:21:09 · 183 阅读 · 0 评论 -
Dubbo 源码分析 00 代码结构概述 && 核心流程
基于dubbo 最新分支 3.x-dev总共1648个类, 代码行数19万+下面看下各个包的核心功能dubbo-cluster : dubbo集群相关,包括:负载均衡, 集群容错,路由,分组聚合等。集群的地址列表可以是静态配置的,也可以是由注册中心下发。dubbo-common : 公共逻辑模块,提供工具类和通用模型。dubbo-compatible:兼容性测试使用...原创 2020-01-04 09:56:13 · 355 阅读 · 0 评论 -
Dubbo 源码分析02 服务提供者provider启动流程
源码分析ServiceBean#afterPropertiesSetStep1:如果provider为空,说明dubbo:service标签未设置provider属性,如果一个dubbo:provider标签,则取该实例,如果存在多个dubbo:provider配置则provider属性不能为空,否则抛出异常:“Duplicate provider configs”。 Step2:如果ap...原创 2019-09-21 00:17:50 · 329 阅读 · 0 评论 -
Dubbo 源码分析 01 服务提供者provider初始化 和 注册
http://dubbo.apache.org/zh-cn/docs/user/preface/architecture.html dubbo官方文档Dubbo自定义标签实现。dubbo通过Spring加载配置文件后,是如何触发注册中心、服务提供者、服务消费者按照Dubbo的设计执行相关的功能。 所谓的执行相关功能如下:注册中心启动,监听消息提供者的注册服务、接收消息消费者的服务订阅...原创 2019-09-20 23:50:43 · 157 阅读 · 0 评论