由於這兩個都不熟,所以在考慮學哪個。
先說結論:都要學,但是重點學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功能的替換路線差不多。