dubbo 学习
本文于 2695 天之前发表,文中内容可能已经过时。
问题:
1:RPC的实现是如何实现的?
核心类:ReferenceConfig.createProxy()创建代理类,
获取proxy代理类的顺序:
1 | 1. 如果没有url指定: |
第一步是生成代理类。
第二部当方法调用的时候,通过代理类发送信息给实际的执行类,然后等待返回结果封装到自己的返回结果里面。
rpc 的实现机制最终还是使用了jdk的动态代理的概念。
2:dubbo的数据传输的方式有几种?
默认实现的方式:
dubbo
http
hessian
injvm
redis
rmi
memcached
thrift
3:dubbo事务的处理机制?
4:dubbo客户端配置文件的加载,是如何从spring boots的资源文件加载的?
5. dubbo的分布式服务端处理?
6.filter的应用场景和实例?
7 负载均衡是如何实现的?
LoadBalance接口,根据策略在来做不同的选举。
检查类的初始化
8 dubbo的分版本处理
核心类:AnnotationBean.refer
1 | String key = reference.group() + "/" + interfaceName + ":" + reference.version(); |
9 dubbo对jsr303的处理
spring mvc对validate的处理需要显示的声明validate
而dubbo不需要,根本原因是dubbo的传输协议会带过来validate的信息
核心的实现类ValidationFilter
优雅关机、灰度发布、熔断策略,链路追踪,分布式事务
扩展的思考:
1. jDK的动态代理是如何实现的?
参考的文章
http://blog.csdn.net/mhmyqn/article/details/48474815
上面的文章讲了下代理类生成的具体逻辑,但代理类和远程实现类的关联是如何实现的?
代理类只是把远程的调用接口通过自己返回给了调用方