随笔分类 - Dubbo
摘要:这个我调试了下,多个注册中心在创建代理的时候,每个注册中心对应一个invoker,持有一个RegistryDirectory对应一个zkClinet,并且维护这样一个map: 那些不正确zk在创建代理的时候会因为订阅provider节点失败,最后对应的RegistryDirectory下这个map会
阅读全文
摘要:1.回声测试发生在调用端 通过filter直接返回,不涉及rpc过程 2.失败重拾默认3次,超时时间默认1s 3.容错配置 consumer优先适用 4.线程池打满: cause: Server side(192.168.1.103,20880) threadpool is exhausted ,d
阅读全文
摘要:import java.io.*; import com.caucho.hessian.io.HessianInput; import com.caucho.hessian.io.HessianOutput; import hessian.Employee; public class Hessian
阅读全文
摘要:记得我们在做服务暴露的bind和服务调用的connect都有一个ExchangeHandler的实例作为入参: 这个handler最终会利用装饰者模式被封装若干层,Dubbo中提供了大量的Handler去承载特性和扩展,这些Handler最终会和底层通信框架做关联。在NettyServer和Nett
阅读全文
摘要:在看protrocol扩展点时,发现很费解的一点:当前invoker的url是register协议,在export的时候都会从qos lister filer这3个包装类开始,看了一下getExtension()的过程,createExtension()里有这样一些代码: // 装饰器类,用来增加扩
阅读全文
摘要:记得服务暴露的时候createServer()里 server = Exchangers.bind(url, requestHandler); requestHandler在DubboProtocol里的实现如下: private ExchangeHandler requestHandler = n
阅读全文
摘要:前2节分析完了请求头和请求对象的编码,这里看一下响应头和响应对象的编码: 和请求头部一样进来先指定序列化器,没有的话用默认的Hessian2,接下来2个字节的操作和请求头编码类似,第三个字节时去req.getStatus: 紧接着是相似的设置请求唯一表示,然后从第16字节开始存序列化响应对象,后面都
阅读全文
摘要:上节我们看了如何编码请求头,这节一起看下过程中,对请求对象的编码,涉及对接口,方法,方法参数类型,方法参数进行编码,DubboCodec中重写了这个方法: request.getData向下转型成RpcInvocation对象,可以从调试信息中看到其成员的值,RpcInvocation结构如下 接着
阅读全文
摘要:开局一张图,内容全靠XXXXX.... 如图是dubbo协议的格式 encodeRequest进来会先去channel对象中取url的Parameters的“serialization"如果没取到则用默认值:hessian2,接着声明一个16字节的字节数组,并将魔数放进数组。初始化header[2]
阅读全文
摘要:ReferenceAnnotationBeanPostProcessor继承了AnnotationInjectedBeanPostProcessors其实现了InstantiationAwareBeanPostProcessorAdapter接口postProcessPropertyValues方法
阅读全文
摘要:由上一节可知带上dubbo@Service注解的对象,在注册成为bean之后会进一步注册一个ServiceBean,服务暴露便是在这里 public void afterPropertiesSet() throws Exception { if (getProvider() == null) { M
阅读全文
摘要:开始之前建议先去了解spring的BeanDefinition可以参考下这里:https://www.jianshu.com/p/56e42e82e9a0 当用户使用注解@DubboComponentScan时,会激活DubboCompentScanRegistrar,同时生成ServiceAnno
阅读全文
摘要:虽然说多种方式配置dubbo最后殊途同归实例化为dubbo的各配置对象,但是了解下注解的解析过程也能让我们清楚dubbo在spring bean的什么时候怎么样实例化一个代理对象,这点来说了解整个过程可以让我们思路更加清晰: 在开始之前最好对spring的@Import注解的用法有简单的了解。 首先
阅读全文
摘要:1.provider 配置类: start: 2.同样的consumer:
阅读全文
摘要:不管是XML配置还是注解方式,最终都会转换成java api对应的配置对象。 provider: import com.alibaba.dubbo.config.ApplicationConfig;import com.alibaba.dubbo.config.RegistryConfig;impo
阅读全文
摘要:一、总体流程: 1.服务提供者启动时,会向注册中心写入自己的元数据信息,同时会订阅配置元数据信息; 2.消费者启动时,也会向注册中心写入自己的元数据信息,并订阅服务提供者、路由和配置元数据信息; 3.服务治理中心启动时,会同时订阅所有消费者、服务提供者、路由和配置元数据信息; 4.当有服务提供者离开
阅读全文
摘要:1.从github上clone下duboo的源码并checkout tag到2.6.5可以看到如下的结构: 其中all-dubbo的pom如下: 这里会将dubbo的其他项目在package的时候打到一个包里,注意到这里依赖的其他模块全部都是optional,在只依赖dubbo时其他子模块是不会被依
阅读全文

浙公网安备 33010602011771号