|
|
|
|
移动端

2.6 Spring Could与Kubernetes比较

《深入理解Spring Cloud与微服务构建》第2章Spring Cloud简介,本章主要介绍微服务应该具备的功能,以及Spring Cloud的基本组件,最后介绍了 Spring Cloud与Dubbo、Kubernetes之间的比较及优缺点。本节为大家介绍Spring Could与Kubernetes比较。

作者:方志朋来源:人民邮电出版社|2018-03-06 15:15

技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

2.6 Spring Could与Kubernetes比较

Spring Cloud是一个构建微服务的框架,而Kubernetes是通过对运行的容器的编排来实现构建微服务的。两者从构建微服务的角度和实现方式有很大的不同,但它们提供了构建微服务所需的全部功能。从提供的微服务所需的功能上看,两者不分上下,如表2-2所示。

表2-2Spring Cloud与Kubernetes比较

续表

Spring Cloud通过众多的类库来实现微服务系统所需的各个组件,同时不断集成优秀的组件,所以Spring Cloud组件是非常完善的。Spring Cloud基于Spring Boot框架,有快速开发、快速部署的优点。对于Java开发者来说,学习Spring Cloud的成本不高。

Kubernetes在编排上解决微服务的各个功能,例如服务发现、配置管理、负载均衡、容错等。Kubernetes不局限于Java平台,也不局限于语言,开发者可以自由选择开发语言进行项目开发。

与Kubernetes相比,Spring Cloud具有以下优点。

采用Java语言开发,基于Spring平台,继承了Spring Boot快速开发的优势,是Java程序员实现微服务的最佳实践。

Spring Cloud有大量的类库和资源,基本上能解决所有可能出现的问题。

与Kubernetes比较,Spring Cloud具有以下缺点。

依赖于Java语言,不支持跨语言。

Spring Cloud 需要在代码中关注微服务的功能点,例如服务发现、负载均衡等。Kubernetes则不需要关注这些。

下面介绍Kubernetes的优点和缺点,优点如下。

Kubernetes支持多种语言,并且是一个容器管理平台。Kubernetes使程序容器化,并在容器管理上提供了微服务的功能,例如配置管理、服务发现、负载均衡等。Kubernetes能够被应用于多种场合,例如程序开发、测试环境、创建环境等。

Kubernetes除了提供基本的构建微服务的功能外,还提供了环境、资源限制、管理应用程序的生命周期的功能。Kubernetes更像是一个平台,而Spring Cloud 是一个框架。

Kubernetes的缺点如下。

Kubernetes面向DevOps人员,普通的开发人员需要学习很多这方面的知识,学习成本非常高。

Kubernetes仍然是一个相对较新的平台,发展十分迅速。新特性更新得快,所以需要DevOps人员跟进,不断地学习。

Spring Cloud尝试从Java类库来实现微服务的所有功能,而Kubernetes尝试从容器编排上实现所有的微服务功能,两者的实现角度和方式不一样。个人觉得,两者最终的实现功能和效果上不分胜负,但从实现的方式上来讲,Kubernetes略胜一筹。Kubernetes面向DevOps人员,学习成本高。Spring Cloud有很多的类库,以Spring为基础,继承了Spring Boot快速开发的优点,为Java程序员开发微服务提供了很好的体验,学习成本也较低。所以二者比较,各有优势。没有最好的框架,也没有最好的工具,关键是要适合业务需求和满足业务场景。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Linux服务器安全策略详解

Linux主要用于架设网络服务器。如今关于服务器和网站被黑客攻击的报告几乎每天都可以见到,而且随着网络应用的丰富多样,攻击的形式和方法...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊