摘要: 前2节分析完了请求头和请求对象的编码,这里看一下响应头和响应对象的编码: 和请求头部一样进来先指定序列化器,没有的话用默认的Hessian2,接下来2个字节的操作和请求头编码类似,第三个字节时去req.getStatus: 紧接着是相似的设置请求唯一表示,然后从第16字节开始存序列化响应对象,后面都 阅读全文
posted @ 2019-10-09 20:05 l2c 阅读(573) 评论(0) 推荐(0)
摘要: 上节我们看了如何编码请求头,这节一起看下过程中,对请求对象的编码,涉及对接口,方法,方法参数类型,方法参数进行编码,DubboCodec中重写了这个方法: request.getData向下转型成RpcInvocation对象,可以从调试信息中看到其成员的值,RpcInvocation结构如下 接着 阅读全文
posted @ 2019-10-09 19:37 l2c 阅读(305) 评论(0) 推荐(0)
摘要: 开局一张图,内容全靠XXXXX.... 如图是dubbo协议的格式 encodeRequest进来会先去channel对象中取url的Parameters的“serialization"如果没取到则用默认值:hessian2,接着声明一个16字节的字节数组,并将魔数放进数组。初始化header[2] 阅读全文
posted @ 2019-10-08 19:12 l2c 阅读(1809) 评论(0) 推荐(0)
摘要: ReferenceAnnotationBeanPostProcessor继承了AnnotationInjectedBeanPostProcessors其实现了InstantiationAwareBeanPostProcessorAdapter接口postProcessPropertyValues方法 阅读全文
posted @ 2019-10-06 14:33 l2c 阅读(322) 评论(0) 推荐(0)
摘要: 由上一节可知带上dubbo@Service注解的对象,在注册成为bean之后会进一步注册一个ServiceBean,服务暴露便是在这里 public void afterPropertiesSet() throws Exception { if (getProvider() == null) { M 阅读全文
posted @ 2019-10-05 17:30 l2c 阅读(258) 评论(0) 推荐(0)
摘要: 开始之前建议先去了解spring的BeanDefinition可以参考下这里:https://www.jianshu.com/p/56e42e82e9a0 当用户使用注解@DubboComponentScan时,会激活DubboCompentScanRegistrar,同时生成ServiceAnno 阅读全文
posted @ 2019-10-05 11:27 l2c 阅读(248) 评论(0) 推荐(0)
摘要: 虽然说多种方式配置dubbo最后殊途同归实例化为dubbo的各配置对象,但是了解下注解的解析过程也能让我们清楚dubbo在spring bean的什么时候怎么样实例化一个代理对象,这点来说了解整个过程可以让我们思路更加清晰: 在开始之前最好对spring的@Import注解的用法有简单的了解。 首先 阅读全文
posted @ 2019-09-30 18:28 l2c 阅读(465) 评论(0) 推荐(0)
摘要: 1.provider 配置类: start: 2.同样的consumer: 阅读全文
posted @ 2019-09-15 11:54 l2c 阅读(612) 评论(0) 推荐(0)
摘要: 不管是XML配置还是注解方式,最终都会转换成java api对应的配置对象。 provider: import com.alibaba.dubbo.config.ApplicationConfig;import com.alibaba.dubbo.config.RegistryConfig;impo 阅读全文
posted @ 2019-09-15 10:52 l2c 阅读(285) 评论(0) 推荐(0)
摘要: 一、总体流程: 1.服务提供者启动时,会向注册中心写入自己的元数据信息,同时会订阅配置元数据信息; 2.消费者启动时,也会向注册中心写入自己的元数据信息,并订阅服务提供者、路由和配置元数据信息; 3.服务治理中心启动时,会同时订阅所有消费者、服务提供者、路由和配置元数据信息; 4.当有服务提供者离开 阅读全文
posted @ 2019-09-15 00:46 l2c 阅读(432) 评论(0) 推荐(0)