一.
SpringCloud利用Springboot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等它们都可以利用SpringBoot的开发风格做到一键启动和部署。
SpringBoot并没有重复造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
总结:SpringCloud是分布式微服务下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶
1.SpringBoot关注的是微观,它具体就是一个个的微服务,SpringCloud是宏观的,分布式微服务下的一站式解决方案。通俗的讲,SpringBoot是医院里的一个个科室,而SpringCloud是将这些科室组合起来的整体医院。
2.SpringBoot可以单独使用,不需要依赖SpringCloud,而SpringCloud必须依赖于SpringBoot。
3.SpringBoot专注于快速方便开发单个个体微服务。
4.SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来。
总结:SpringBoot专注于快速方便开发单个个体微服务,SpringCloud是关注全局的微服务协调整理治理框架。
严格来说两者各有优势。虽然从一定程度上来说,SpringCloud牺牲了服务调用性能,但是也避免了原生RPC带来的问题。而且REST比RPC更灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更加适合。
Spring Cloud的功能比Dubbo更为强大,涵盖更广,而且作为Spring的拳头项目,它也能够与Spring Framework、Spring Boot、Spring Data、Spring Batch等其他Spring项目完美融合,这些对于微服务是至关重要的。使用Dubbo构建的微服务架构就像组装电脑,各个环节由我们选择的自由度很高,但最终结果很有可能因为一条内存质量不行就点不亮了,总是让人不怎么放心,如果你是一名大牛,这些都不是问题。而SpringCloud就像是品牌机,在SpringCloud的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外的东西,就需要对其基础有足够的了解。
总结:Dubbo的定位始终是一款RPC框架,而Spring Cloud的目标是微服务架构下的一站式解决方案。