【问题标题】:If I have Kubernetes(or mesos) already, why do I need use Spring Cloud?如果我已经有 Kubernetes(或 mesos),为什么还需要使用 Spring Cloud?
【发布时间】:2017-10-03 07:05:08
【问题描述】:
我是 Spring Cloud 的新手,对此我有些困惑。 Kubernetes 和 Spring Cloud 都是微服务框架。如果我已经有 Kubernetes(或 mesos),为什么还需要使用 Spring Cloud?我注意到许多项目同时使用它们。
Kubernetes 和 Spring Cloud 有什么区别?它们都可以提供服务发现、负载均衡等。
我真的很困惑。
【问题讨论】:
标签:
spring
kubernetes
spring-cloud
spring-cloud-netflix
【解决方案1】:
Kubernetes 和 Spring Cloud 解决了许多与微服务相同的问题,但采用不同的方法和技术。 Redhat 写了一篇很棒的文章来解释这一点。以下是主要内容:
Spring Cloud 拥有一组丰富且集成良好的 Java 库,可用于
作为应用程序堆栈的一部分解决所有运行时问题。作为一个
结果,微服务本身有库和运行时代理
做客户端服务发现、负载均衡、配置
更新、指标跟踪等模式,如单例集群
服务,批处理作业也在 JVM 中管理。
Kubernetes 是
polyglot,不仅针对 Java 平台,而且解决了
所有语言的通用分布式计算挑战。
它为配置管理、服务发现、
负载均衡、跟踪、指标、单例、计划作业
平台级别,在应用程序堆栈之外。应用程序
客户端逻辑不需要任何库或代理,它可以是
用任何语言编写。
在某些领域,两个平台都依赖于相似的
第三方工具。例如 ELK 和 EFK 堆栈,跟踪
图书馆等
Hystrix、Spring Boot等一些库很有用
在这两种环境下都同样出色。有些领域两者兼而有之
平台是互补的,可以组合在一起创建一个
更强大的解决方案(KubeFlix 和 Spring Cloud Kubernetes 就是这样
示例)。
来源:https://developers.redhat.com/blog/2016/12/09/spring-cloud-for-microservices-compared-to-kubernetes/
为了更详细地了解不同之处和相似之处,我建议阅读完整的article。