Dubbo,是阿里巴巴服务化治理的核心框架。Springcloud,是一系列关于服务治理框架的集合。两者在服务治理方面各有优缺点,所以两种框架都有不少公司在用,我特地学习了两种框架,并通过项目对比来了解两个框架之间的区别。

一、Springcloud和Dubbo两个项目的地址

Springcloud项目名称:school-springcloud-springboot,地址如下:

Dubbo项目名称:school-dubbo-springboot,地址如下:

二、项目对比Springcloud和Dubbo(个人理解)

1.粒度大小

粒度大小这个尺寸没有一定的分界线,但是从做这两个项目可以知道,Springcloud可以将项目拆分成更小的粒度,它可以不需要依赖其他项目而独立部署,也就是微服务,通过http协议传输,来解决数据间的交互,所以数据传输问题并不存在,因此,拆分粒度想有多小,就有多小。而Dubbo却不能随意拆分,Dubbo是通过二进制传输的,并且各个项目之间的依赖性非常大,所以项目不能拆分太小,否者会出现项目依赖问题,使得项目出错。

2.速度问题

由于Dubbo是通过二进制传输的,并且项目之间有依赖性,传递速度会比Springcloud来的快,网络慢的时候有点明显。而且从两个项目都启动后,第一次调用数据也可以看到,Dubbo明显快,Springcloud会出现卡顿问题。

3.依赖性

Dubbo的依赖性很大,从maven配置文件可以看到,Dubbo存在着项目之间的调用,更明显的是,Dubbo服务是面向类级的,所以服务接口一定要相同,一但不同就会报错。Springcloud则不同,它是独立部署的,各个项目可以不存在依赖关系,而且服务是面向方法级的,支持Restful传输,Api不需要相同(名字和类名可以不相同),只要方法(返回的方法)相同就好,而且基于Spring,弹性更好,跟灵活。

4.工程花费时间

Springcloud如果粒度规划小一点的话,时间会花的比Dubbo多,而且Springcloud是一系列框架配合起来用的,难度更大,而Dubbo就方便多了,它主要是把时间花在依赖解决上,服务之间的条用比起Springcloud来说简单多了。

5.选择

要是我的话,我可能会选择Springcloud作为首要框架,它虽然做起来时间耗费好多,而且其中会遇到很大困难(技术点太多),都是它更好理解,有着很强的扩展性,未来要是有其他需求,可以花费更少时间(在某个小工程上改就行)。对于大项目而言,就会显得越发明显。

三、总结

在做这两个项目之前,我可能了解到一些关于Dubbo和Springcloud内容,但都只是了解,直到自己认认真真做了这两个项目之后,自己对于微服务的认知才得到了提高,知道了未来的发展方向,当然,我会继续加油的!Give Me Five!