为什么选择使⽤SpringCloud⽽放弃了Dubbo
为什么选择使⽤Spring Cloud⽽放弃了Dubbo
可能⼤家会问,为什么选择了使⽤Dubbo之后,⽽⼜选择全⾯使⽤Spring Cloud呢?其中有⼏个原因:
1)从两个公司的背景来谈:Dubbo,是阿⾥巴巴服务化治理的核⼼框架,并被⼴泛应⽤于中国各互联⽹公司;Spring Cloud是⼤名⿍⿍的Spring家族的产品。阿⾥巴巴是⼀个商业公司,虽然也开源了很多的顶级的项⽬,但从整体战略上来讲,仍然是服务于⾃⾝的业务为主。Spring专注于企业级开源框架的研发,不论是在中国还是在世界上使⽤都⾮常⼴泛,开发出通⽤、开源、稳健的开源框架就是他们的主业。2)从社区活跃度这个⾓度来对⽐,Dubbo虽然也是⼀个⾮常优秀的服务治理框架,并且在服务治理、灰度发布、流量分发这⽅⾯做的⽐Spring Cloud还好,除过当当⽹在基础上增加了rest⽀持外,已有两年多的时间⼏乎都没有任何更新了。在使⽤过程中出现问题,提交到github的Issue也少有回复。
相反Spring Cloud⾃从发展到现在,仍然在不断的⾼速发展,从github上提交代码的频度和发布版本的时间间隔就可以看出,现在Spring Cloud即将发布2.0版本,到了后期会更加完善和稳定。
3) 从整个⼤的平台架构来讲,dubbo框架只是专注于服务之间的治理,如果我们需要使⽤配置中⼼、分布式跟踪这些内容都需要⾃⼰去集成,这样⽆形中使⽤dubbo的难度就会增加。Spring Cloud⼏乎考虑了服务治理的⽅⽅⾯⾯,更有Spring Boot这个⼤将的⽀持,开发起来⾮常的便利和简单。
springcloud和springboot4)从技术发展的⾓度来讲,Dubbo刚出来的那会技术理念还是⾮常先进,解决了各⼤互联⽹公司服务治理的问题,中国的各中⼩公司也从中受益不少。经过了这么多年的发展,互联⽹⾏业也是涌现了更多先进的技术和理念,Dubbo⼀直停滞不前,⾃然有些掉队,有时候我个⼈也会感到有点可惜,如果Dubbo⼀直沿着当初的那个路线发展,并且延伸到周边,今天可能⼜是另⼀番景象了。
Spring 推出Spring Boot/Cloud也是因为⾃⾝的很多原因。Spring最初推崇的轻量级框架,随着不断的发展也越来越庞⼤,随着集成项⽬越来越多,配置⽂件也越来越混乱,慢慢的背离最初的理念。随着这么多年的发展,微服务、分布式链路跟踪等更多新的技术理念的出
现,Spring急需⼀款框架来改善以前的开发模式,因此才会出现Spring Boot/Cloud项⽬,我们现在访问Spring官⽹,会发现Spring Boot和Spring Cloud已经放到⾸页最重点突出的三个项⽬中的前两个,可见Spring对这两个框架的重视程度。
总结⼀下,dubbo曾经确实很⽜逼,但是Spring Cloud是站在近些年技术发展之上进⾏开发,因此更具技术代表性。