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