首先我们来具体谈谈研究Dubbo框架实现原理,我们到底能学到什么?
我们可以学习和深刻体会到分层架构带来的好处
我们也可以学习到好的框架应该具有可扩展性,Dubbo就是一个扩展性极强的框架
作为高可用分布式RPC框架,其自身必须具有容错能力,以便提高系统的可用性;Dubbo框架则提供了分布式系统中常见的集群容错策略
在分布式系统中每个微服务都是以集群的方式部署,那么当我们访问一个具体服务时候到底访问那一台机器提供的服务那,Dubbo中有丰富的负载均衡策略
在分布式系统中当我们要消费某个服务时候,如何找到其地址是一个要解决的问题,在分布式RPC中一个通用解决方案是引入服务注册中心
所有RPC框架都要解决的一个问题是,如何让使用者无感知的发起远程过程调用;Dubbo框架和其他RPC框架一样采用代理来实现该能力
在Dubbo的分层架构中Transport 网络传输层把抽象 mina和Netty为统一接口,并且默认情况下其使用Netty作为底层网络通信,通过研究Dubbo,我们可以学习到Dubbo的网络协议帧是如何设计的;
对于网络请求来说,同步调用时比较直截了当的,但是同步调用意味着当前发起请求的调用线程在远端机器返回结果前必须阻塞等待,这明显很浪费资源,Dubbo则基于Netty的异步非阻塞能力与JDK8中的CompletableFuture轻松的实现RPC请求的异步调用,提高了资源利用率;通过研究Dubbo的实现原理,我们可以对异步编程带来的好处以及实现原理有深刻的体会。
总之研究透彻Dubbo框架原理实现后,你会对分布式系统中的很多技术点有深入的理解;而我坚信分布式系统是应用的发展方向,因为随着业务规模的增大,为了保障系统的可伸缩性、高可用性,系统必然朝着分布式方向发展;所以如果能掌握一些分布式系统中的优秀RPC框架的原理以及实现细节,无论是现在还是将来都将会成为自己区别与他人的核心竞争力。