以前的项目一直使用Dubbo,最近SpringCloud比较火,恰好这个时期比较特殊,就在家里仔细研究了一下SpringCloud,但是学习的过程中发现SpringCloud真的不一定适合所有人:主要和通讯协议有关,Springcloud使用HTTP的REST协议,Dubbo使用RPC调用。
1、对性能要求比较高的项目不建议使用SpringCloud【和Dubbo的比较中,性能相差至少一倍以上】
2、项目单纯由Java项目构成不建议使用SpringCloud【如果跨多种语言,使用Springcloud比较好,毕竟REST协议】
3、项目中要求开发进度快的【Dubbo只要定义一个接口就可以了,但是SpringCloud的REST协议方便的同时也是双刃剑,接口一致性比较难以控制】
做一个Jmeter的性能测试吧。测试方式很简单,就是dubbo的做一个(provider、consumer各一个),springcloud的做一个最简单的demo(consumer一个;provider方我启动了两个,否则压测并发数很快就死掉了,并对参数进行了简单调优),然后使用Jmeter进行压测,你有兴趣自己也去做一下。这里提供一下结果抓图分享一下。
Jmeter的线程数设置为1000,循环100次。
一、Dubbo模式17秒跑完10w个请求。
二、SpringCloud模式51秒跑完10w个请求。
老板非要喜欢SpringCloud你用就是了。
当然仁者见仁智者见智,你喜欢哪个就用哪个吧。毕竟黑猫白猫抓到老鼠就是好猫。
=======================================================
再在后面跟一些技术干货吧,自己好好学习。
SpringCloud的组件架构
Dubbo的框架
Dubbo和SpringCloud的性能比较