微服务
爱艺欣聊编程
超级大码农
展开
-
dubbo源码浅析(五)-远程服务调用流程
消费端调用远程服务接口时,使用上和调用普通的java接口是没有任何区别,但是服务消费者和提供者是跨JVM和主机的,客户端如何封装请求让服务端理解请求并且解析服务端返回的接口调用结果,服务端如何解析客户端的请求并且向客户端返回调用结果,这些框架是如何实现的,下面就来看下这部分的代码。 消费端调用提供端服务的过程要执行下面几个步骤: 1. 消费端触发请求 2. 消费端请求编码 3.原创 2016-11-29 09:27:05 · 19418 阅读 · 10 评论 -
dubbo源码浅析(一)-插件化机制
在前东家一直从事偏客户端相关的工作,进了新东家之后终于有机会从事大型的分布式系统开发,在微服务大行其道的今天,dubbo框架作为一款优秀的开源RPC框架使用非常广泛,在使用dubbo的这几个月里,用零碎的空闲时间对dubbo框架的源码浅读了一番,由于平时工作忙加班比较多,所有历时几个月才把读代码的过程整理出来,打算分成几篇把这个过程共享记录下来。原创 2016-11-19 10:15:24 · 5238 阅读 · 1 评论 -
dubbo源码浅析(二)-标签解析
前面了解了dubbo的插件化机制之后,接下来进入正题,研究一下dubbo的核心原理,由于dubbo的功能配置较多,为了更高效的研读代码,在阅读的过程中尽量忽略一些细节,重点关注它的主干流程,主干了解清楚之后再去分析它的一些细节功能就更轻松了,否则容易陷入各种细枝末节不能自拔让整个代码的阅读周期变得冗长无比效率大打折扣。 Dubbo框架中,服务提供者和服务消费是两个核心角色,所以主要通过服务提供者原创 2016-11-25 19:45:08 · 3514 阅读 · 3 评论 -
dubbo源码浅析(三)-服务提供者初始化
dubbo服务提供者由dubbo:service来定义,从前面可以看到,Spring把dubbo:service解析成一个ServiceBean,ServiceBean实现了ApplicationListener和InitializingBean接口,ServiceBean有个核心方法export,在这个方法中初始化服务提供者并且暴露远程服务。这个方法在bean初始化或容器中所有bean刷新完毕时原创 2016-11-26 11:23:54 · 4440 阅读 · 0 评论 -
dubbo源码浅析(四)-服务消费者初始化
在分析标签解析的时候知道框架会把dubbo:reference解析成一个ReferenceBean,它是一个FactoryBean,消费者的初始化在它的init方法中执行,这个方法在两种情况下会被调用: 1. 消费者设置了立即初始化(init属性设置成true),那么bean加载时会立刻调用消费者初始化。 2. 消费者bean被使用者调用时,调用getObject->get->init原创 2016-11-28 11:58:42 · 4305 阅读 · 0 评论 -
dubbo框架中一行日志代码引发的超时问题
前一段时间有测试反馈,我负责的一个dubbo接口调用超时,而是是稳定必现的超时。拿到问题之后第一件事当然是分析代码所有可能性能瓶颈的地方,然后并没有收获,我们的接口超时时间设置的是5s,然后单测我们的接口时间只有几十ms。相同的数据,测试怎么会出现这么大的差异呢。难道是dubbo接口的配置问题?找我们的dubbo老司机检查了一遍并没有检查出配置问题,而且工程日志也出现任何可疑的错误信息。而且换了几个原创 2016-12-05 09:42:24 · 4067 阅读 · 0 评论