请问:由于这两个都不熟,所以在考虑学哪个?

先说结论:都要学,但是重点学k8s,k8s是一个更加完善的解决方案,springcloud被淘汰只是时间的问题。

从自己的经历和网上的文章两方面分析

个人经历:

目前所在的公司的系统是springcloud和k8s混合使用,目前正在逐步用k8s中的功能替代springcloud里的功能。

已经替代掉的:服务发现。以前用的是eureka,目前删除里eureka,直接用feignclient访问k8s里的service地址。

正在考虑中的:配置中心。目前用的是config-server,正在考虑用k8s里的configmap替代。

网上的分析文章:

分析文章1:部署微服务:Spring Cloud vs. Kubernetes - 云+社区 - 腾讯云

功能对比:

各自的优缺点:

总结一下:

Springcloud易于java开发者上手,但是只是从框架层面解决了微服务的流程的一部分,缺乏自动部署功能,而且局限于java平台;

k8s上手难度大,但是k8s从平台层面解决了微服务整个流程,并且不限语言。

如果只考虑微服务层面,k8s已经可以替代Springcloud了。

但是由于我目前主要开发java,而Springcloud有一些针对java的而且k8s没有的功能,

比如:feignclient(替代直接使用httpclient),分布式服务跟踪Sleuth

所以springcloud还是要学习的,但是很多模块已经不必深入钻研了,比如euraka。

把研究springcloud的精力分出一大部分来,研究一下k8s。

另外,无论选springcloud还是k8s,作为一个java开发者,Springboot和docker都是基础,是要认真研究的。

优势整合,这个整合和目前公司的用k8s功能替换springcloud功能的替换路线差不多。

https://github.com/spring-cloud/spring-cloud-kubernetes

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐