java架构师为什么使用Dubbo后又选择使用Spring Cloud
可能大家会问,java架构师为什么选择了使用Dubbo之后,而又选择全面使用SpringCloud呢?其中有几个原因:
从两个公司的背景来谈:Dubbo,是阿里巴巴面向服务治理的核心框架,在中国各种互联网公司中得到了广泛使用。SpringCloud是著名的Spring家族的产品。阿里巴巴是一家商业公司。尽管它已经开源了许多顶级项目,但它仍然专注于从整体战略上为自己的业务服务。Spring专注于企业级开源框架的研发,该框架已在中国甚至在全世界范围内广泛使用。开发通用,开源且健壮的开源框架是他们的主要业务。
从社区活跃度这个角度来对比:Dubbo还是一个很好的服务管理框架,在服务管理,灰度发布和流量分配方面都要比SpringCloud更好。除了在基础上提供了rest支持外,几乎两年的时间内都不需要有任何的更新。使用过程中发生了问题,提交到github的Issue也少有回复。
相反SpringCloud自从发展到现在,仍然在不断的高速发展,从github上提交代码的频度和发布版本的时间间隔就可以看出,现在SpringCloud即将发布2.0版本,到了后期会更加完善和稳定。
从整个大的平台架构来讲,dubbo框架只是专注于服务之间的治理,如果我们需要使用配置中心、分布式跟踪这些内容都需要自己去集成,这样无形中使用dubbo的难度就会增加。SpringCloud几乎考虑了服务治理的方方面面,更有SpringBoot这个大将的支持,开发起来非常的便利和简单。
从技术发展的角度来讲,Dubbo技术刚上线的时候还是非常先进的。它解决了主要互联网公司的服务治理问题,中国的中小型公司也从中受益匪浅。经过这么多年的发展,Internet行业出现了更先进的技术和概念。Dubbo一直停滞不前,自然也落伍了,有时我个人会感到有些遗憾。如果Dubbo沿原路线发展,并扩展到周边地区,今天可能又是另一番景象了。
Spring推出SpringBoot/Cloud也是因为自身的很多原因。Spring最初推崇的轻量级框架,随着不断的发展也越来越庞大,随着集成项目越来越多,配置文件也越来越混乱,慢慢的背离最初的理念。随着这么多年的发展,微服务、分布式链路跟踪等更多新的技术理念的出现,Spring急需一款框架来改善以前的开发模式,因此才会出现SpringBoot/Cloud项目,我们现在访问Spring官网,会发现SpringBoot和SpringCloud已经放到首页最重点突出的三个项目中的前两个,可见Spring对这两个框架的重视程度。
总结一下,dubbo曾经确实很牛逼,但是SpringCloud是站在近些年技术发展之上进行开发,因此更具技术代表性。
推荐阅读:java架构师指南之架构师的工作流程