【问题标题】:Why is Spring Cloud called "Cloud"?Spring Cloud 为什么叫“云”?
【发布时间】:2020-08-02 19:44:18
【问题描述】:

Spring Cloud 是一个有助于实现 微服务 架构的框架(具有常见的模式和实践,如运行时配置、跟踪、断路器、服务发现等),但它没有什么可做的用“Cloud”,对吧?

微服务和云结合起来很合适,但 Spring Cloud 有助于微服务,而不是云。我说的对吗?

我的问题是:Spring Microservices 不是 Spring Cloud 的更好名称吗?

我不想更改它的名称,我只是想确保我正确理解了框架。

为了记录,“Spring Cloud Netflix”或“Spring Cloud Amazon”会很好命名,因为它们确实有助于集成这些特定的云平台。

【问题讨论】:

  • 为什么叫Spring?跟弹簧没关系吧?
  • 不要纠结于名字。您已经阅读了概述,并且您似乎已经理解了它。不要再猜测自己了。

标签: java spring-boot microservices spring-cloud


【解决方案1】:

Spring Cloud 库是用于实现分布式系统的通用工具。

Spring Cloud 为开发人员提供了工具,可以快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导力选举、分布式会话、集群状态)

微服务架构不一定建立在亚马逊等云技术之上,可能会在自托管服务器上运行。

此外,微服务架构确实是基于服务发现、API 网关、sidecar-proxies 等“架构模式”,但这并不意味着它是唯一的 可以从这些特性中受益的架构。

我认为 Spring Cloud 这个名字选得很好,因为它专注于实现分布式系统

【讨论】:

  • 它专注于分布式系统的实现,因此它应该被称为Spring分布式系统,但绝不是“Spring Cloud”,因为它与云无关。对吗?使用此框架构建的系统可以部署在云端,也可以不部署,所以如果我理解得很好,就称它为“Spring Cloud”是没有意义的。
【解决方案2】:

好吧,可能Pivotal负责命名的人可以给你很好的答案,我只能推测。

在我的理解中,Spring Cloud 是一组允许(主要是 Spring Boot 驱动的)应用程序以“云原生”方式编写的工具。当您在云中运行时,使用断路器保护应用程序是有意义的,使用服务发现以横向扩展系统的各个部分将无缝工作,等等。

现在,spring boot 应用程序不一定要在云端运行,实际上它可以在您的“个人”(本地)服务器上运行 spring boot 应用程序。

Spring Boot 应用程序不仅限于运行微服务,还可以使用 Spring Boot 运行单体应用。事实上,有许多单体应用程序在后台使用弹簧。

现在,您可以从 Spring Cloud 中获取工具并将它们用于未在云中运行的应用程序吗?是的,当然可以。你能从这些工具中受益吗?可能是的,但如果您在一台本地服务器上运行一项微服务,则不会那么多(我夸大了,但仍然如此)。

您的环境与云(公有云、私有云或混合云)的“相似性”越多,使用这些工具所带来的好处就越多,这可能是正确的说法。因此得名:)

【讨论】:

  • 我不同意“Spring Cloud 是一组允许以 Cloud Native 方式编写应用程序的工具”。微服务是一种架构风格,非常适合 Cloud Native 应用,Spring Cloud 帮助构建微服务架构...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-17
  • 2014-01-17
  • 1970-01-01
  • 2016-05-21
  • 2018-10-22
  • 1970-01-01
  • 2021-03-11
相关资源
最近更新 更多