因爲這兩個都不熟,因此在考慮學哪一個。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功能的替換路線差很少。