SpringCloud介绍

本文翻译自spring官网:https://spring.io/cloud

什么是SpringCloud?

开发分布式系统可能具有挑战性。复杂性从应用层转移到网络层,要求服务之间进行更大的交互。让你的代码“云原生”意味着要处理12个因素的问题,比如外部配置、无状态、日志记录和连接到后台服务。Spring Cloud项目套件包含许多使应用程序在云中运行所需的服务。

SpringCloud包含哪些组件?

springcloud包含有:Service discovery、API gateway、Cloud configuration、Circuit breakers、Tracing、Testing等。下边一个个的介绍这些组件!

SpringCloud架构图(来自官网:https://spring.io/cloud)

Service discovery

在云计算中,应用程序并不总是知道其他服务的确切位置。服务注册中心(如Netflix Eureka)或sidecar解决方案(如HashiCorp)可以提供帮助。Spring Cloud为流行的注册中心(如Eureka、、Zookeeper甚至Kubernetes的内置系统)提供了DiscoveryClient实现。还有一个Spring云负载均衡器,可以帮助您在服务实例之间小心地分配负载。

API gateway

有这么多的客户端和服务器,在云架构中包含一个API网关通常是有帮助的。网关可以负责保护和路由消息、隐藏服务、调整负载和许多其他有用的事情。Spring Cloud Gateway为您提供了对API层的精确控制,集成了Spring云服务发现和客户端负载平衡解决方案,从而简化了配置和维护。

Cloud configuration

在云计算中,配置不能简单地嵌入到应用程序中。配置必须足够灵活,以处理多个应用程序、环境和服务实例,并在不停机的情况下处理动态更改。Spring Cloud Config旨在减轻这些负担,并提供与版本控制系统(如Git)的集成,以帮助您保持配置的安全性。

Circuit breakers

分布式系统可能不可靠。请求可能会遇到超时或完全失败。一个断路器可以帮助缓解这些问题,Spring Cloud断路器为您提供了三种流行的选择:弹性4j、Sentinel或Hystrix。

Tracing

调试分布式应用程序可能很复杂,需要很长时间。对于任何给定的故障,您可能需要将来自几个独立服务的信息跟踪拼凑在一起。Spring Cloud Sleuth可以以一种可预测和可重复的方式对您的应用程序进行测试。当与Zipkin一起使用时,您可以将注意力集中在任何可能出现的延迟问题上。

Testing

在云计算中,拥有一个可靠的、值得信赖的、稳定的api,您可以获得额外的分数——但是实现它可能是一段旅程。基于契约的测试是高绩效团队经常使用的一种技术,以保持在正轨上。它有助于形式化api的内容,并围绕这些内容构建测试,以确保代码处于检查状态。Spring Cloud Contract使用Groovy、Java或Kotlin编写的契约,为REST和基于消息的api提供基于契约的测试支持。

文章来自:SpringCloud介绍

 

你可能感兴趣的:(Java,Spring,springcloud,介绍)