因为这两个都不熟,因此在考虑学哪一个。java
先说结论:都要学,可是重点学k8s,k8s是一个更加完善的解决方案,springcloud被淘汰只是时间的问题。spring
从本身的经历和网上的文章两方面分析docker
我的经历:框架
目前所在的公司的系统是springcloud和k8s混合使用,目前正在逐步用k8s中的功能替代springcloud里的功能。分布式
已经替代掉的:服务发现。之前用的是eureka,目前删除里eureka,直接用feignclient访问k8s里的service地址。微服务
正在考虑中的:配置中心。目前用的是config-server,正在考虑用k8s里的configmap替代。学习
网上的分析文章:server
分析文章1:https://cloud.tencent.com/developer/article/1140086blog
功能对比:springcloud
各自的优缺点:
总结一下:
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功能的替换路线差很少。