dubbo与springcloud对比

springcloud是基于springboot的 
springcloud的优点是 开发简洁 支持restful
springcloud的更新也要比dubbo快,更多的社会资源支持
dubbo国内使用较多、有中文文档、技术成熟
springcloud整合了大量的第三方组件、以及springboot的自动化配置 
dubbo提供的是rpc调用; springcloud提供的是restful调用: 


两者的区别是:

    dubbo的服务提供方与调用方接口依赖太强:我们为每个微服务定义了各自的service抽象接口,并通过持续集成发布到私有仓库(zookeeper)中,调用方应用对微服务提供的抽象接口存在强依赖,因此不论开发、测试还是集成环境都必须严格管理版本依赖,防止服务方与调用方的接口不一致导致调用失败.而且也会直接影响本地开发效率,一个依赖很多服务的上层应用,每天都要更新很多代码并install之后才能进行后续开发。若没有严格的版本管理制度或自动化的工具,这样的依赖关系会成为开发团队的噩梦。而RESTful相比RPC更为轻量化,提供方和调用方的依赖只是依靠一纸契约,不存在代码级别的强依赖,当然REST接口也有痛点,因为接口定义过轻,很容易导致定义文档与实际实现不一致导致服务集成时的问题,但是该问题很好解决,只需要通过每个服务整合swagger,让每个服务的代码与文档一体化,就能解决。所以在分布式环境下,REST方式的服务依赖要比RPC方式的依赖更为灵活。

    dubbo服务对平台敏感,难以简单复用:通常我们在对外提供服务时,都会以REST的方式提供,这样可以跨平台,任何一个语言的调用方都可以根据接口定义来实现。那么在Dubbo中我们要提供REST接口时,不得不实现一层代理,用来将RPC接口转换成REST接口进行对外发布。若我们每个服务本身就以REST接口方式存在,当要对外提供服务时,只要在API网关中配置映射关系和权限控制就可实现服务的复用了。(rpc接口方式无法实现跨平台调用)

猜你喜欢

转载自blog.csdn.net/sxj6977380/article/details/79840421