云服务
云 (Cloud)
开发 分布式系统 可能具有挑战性。复杂性从应用层转移到网络层,并要求服务之间进行更大的交互。使您的代码 “云原生 (cloud-native)” 意味着要处理 12 因素 (12-factor) 问题,例如外部配置、无状态性、日志记录以及连接到后端服务。Spring Cloud 项目套件包含了您让应用在云中运行所需的许多服务。
Spring Cloud 架构亮点
服务发现 (Service discovery)
在云环境中,应用无法总是知道其他服务的确切位置。服务注册中心,例如 Netflix Eureka,或 边车 (sidecar) 解决方案,例如 HashiCorp Consul,可以提供帮助。Spring Cloud 为流行的注册中心(如 Eureka、Consul、Zookeeper,甚至 Kubernetes 的内置系统)提供了 DiscoveryClient 实现。它还提供了一个 Spring Cloud Load Balancer 来帮助您仔细地在您的服务实例之间 分配负载。
通过这个简单指南快速入门 (Get started with this simple guide)
API 网关 (API gateway)
在有如此多客户端和服务器的情况下,在您的云架构中包含一个 API 网关 通常会有所帮助。网关可以负责 保护和路由消息、隐藏服务、限制负载 以及许多其他有用的功能。Spring Cloud Gateway 为您提供了 精确控制 API 层 的能力,它集成了 Spring Cloud 服务发现 和 客户端负载均衡 解决方案,以简化配置和维护。
Spring Cloud Gateway 快速入门 (Getting Started with Spring Cloud Gateway)
我们发现 Spring Cloud Gateway 的 性能非常有吸引力。在我们的用例中,低延迟、高吞吐量,以及 非常小的超时百分比。
CHRIS JACKSON,TD AMERITRADE 高级开发人员
云配置 (Cloud configuration)
在云环境中,配置不能简单地 嵌入 在应用内部。配置必须足够灵活,以应对 多个应用、环境和服务实例,并处理 动态变化而无需停机。Spring Cloud Config 旨在减轻这些负担,并提供与 Git 等 版本控制系统 的集成,以帮助您 确保配置的安全。
立即试用 (Try it now)
断路器
分布式系统可能不可靠。请求可能会遇到超时或完全失败。断路器 可以帮助缓解这些问题,而 Spring Cloud Circuit Breaker 为您提供了三种流行的选择:Resilience4J、Sentinel 或 Hystrix。
跟踪
调试分布式应用程序可能很复杂且耗时。对于任何给定的故障,您可能需要拼凑来自几个独立服务的信息 跟踪。Micrometer Tracing 可以以可预测且可重复的方式对您的应用程序进行检测。当与 OpenZipkin Brave 或 OpenTelemetry 结合使用时,您可以精确定位可能存在的任何延迟问题。
测试
在云中,拥有 可靠、值得信赖、稳定 的 API 会为您赢得额外的分数——但实现这一目标可能是一个旅程。基于契约的测试 是高性能团队经常用来保持步入正轨的一种技术。它通过将 API 的内容 形式化 并围绕它们构建 测试 来确保代码保持在检查范围内。
Spring Cloud Contract 为 REST 和基于消息的 API 提供了基于 契约的测试 支持,契约可以用 Groovy、Java 或 Kotlin 编写。