3W法(what,why,how)入门 Spring Cloud
in with 0 comment

3W法(what,why,how)入门 Spring Cloud

in with 0 comment

初学Spring Cloud,用3W法—what,why,how来学习Spring Cloud,文中引用部分均来自文末的链接处。

先上图,后面慢慢道来:

Spring Cloud 学习

WHAT --- 定义

什么是Spring Cloud?

Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry. ---摘自官网

Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如:配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态)。 分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。 它们可以在任何分布式环境中正常工作,包括开发人员自己的笔记本电脑,裸机数据中心以及Cloud Foundry等托管平台。

用更便于理解的方式说:

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

Spring Cloud的版本有哪些?

Release TrainBoot Version
Hoxton2.2.x
Greenwich2.1.x
Finchley2.0.x
Edgware1.5.x
Dalston1.5.x

Spring Cloud版本名称是按字母顺序排列的(因此您可以按时间顺序对它们进行排序),带有伦敦地铁站的名称(“ Angel”是第一个发行版,“ Brixton”是第二个发行版)

2017年7月 ,布里克斯顿(Brixton)和天使(Angel)版本已经被废弃,卡姆登(Camden)也已被废弃;

达尔斯顿(Dalston)在2018年12月废弃,埃奇韦尔(Edgware)将跟随Spring Boot 1.5.x的版本周期

Dalston和Edgware发行版本建立在Spring Boot 1.5.x上,并且不能与Spring Boot 2.0.x一起使用。

Greenwich可以构建并与Spring Boot 2.1.x一起使用,并且不能与Spring Boot 1.5.x一起使用。

截止2019年12月底,Spring Cloud最新版本为Hoxton,Greenwich 为SR4、Finchley 为SR4。

WHY --- 特点

Spring Cloud 具有什么特点?

具体详细介绍在使用中进行说明。

为什么要用 Spring Cloud?

Spring Cloud 与 Dubbo 的区别?

HOW --- 使用

架构图

Spring Cloud

Spring Cloud Config

Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以集中管理所有环境中应用程序的外部属性。

Spring Cloud Config Server功能:

Config Client功能(用于Spring应用程序):

Spring Cloud Netflix

Spring Cloud Netflix通过自动配置并绑定到Spring Environment和其他Spring编程模型习惯用法,为Spring Boot应用程序提供Netflix OSS集成。提供的模式包括服务发现(Eureka),断路器(Hystrix),智能路由(Zuul)和客户端负载平衡(Ribbon)。

Eureka是微服务架构中的注册中心,负责服务的注册与发现。

Feign 可帮助我们更加便捷、优雅地调用HTTP API,基于Feign的动态代理机制,可根据注解和选择的机器,拼接请求URL地址,发起请求。

Hystrix 通过添加等待时间容限和容错逻辑来帮助控制分布式服务之间的交互,通过隔离服务之间的访问点,停止服务之间的级联故障并提供后备选项来实现此目的,所有这些都可以提高系统的整体弹性。

Zuul 是从设备和 web 站点到 Netflix 流应用后端的所有请求的前门。作为边界服务应用,Zuul 是为了实现动态路由、监视、弹性和安全性而构建的。

Ribbon 是一个客户端/进程内负载均衡器,运行在消费者端【Nginx 是接收了所有的请求进行负载均衡的】。服务间发起请求的时候,基于Ribbon做负载均衡,从一个服务的多台机器中选择一台。

Spring Cloud Bus

将轻量级消息代理程序链接到分布式系统的节点。然后可以将其用于广播状态更改(例如配置更改)或其他管理指令。当前唯一的实现是使用AMQP代理作为传输,但是其他传输的路线图上仍具有相同的基本功能集(还有一些取决于传输)。

Spring Cloud Consul

通过自动配置并绑定到Spring Environment和其他Spring编程模型习惯用法,为Spring Boot应用程序提供Consul集成。通过一些简单的注释,您可以快速启用和配置应用程序内部的通用模式,并使用Hashicorp的Consul构建大型分布式系统。提供的模式包括服务发现,分布式配置和控制总线。

Spring Cloud Security

提供了一组原语来构建安全的应用程序和服务。可以在外部(或中央)进行大量配置的声明性模型很适合于通常使用中央身份管理服务的大型协作远程组件系统的实施。在像Cloud Foundry这样的服务平台中使用它也非常容易。在Spring Boot和Spring Security OAuth2的基础上,我们可以快速创建实现常见模式(如单点登录、令牌中继和令牌交换)的系统。

Spring Cloud Sleuth

DapperZipkin和HTrace 大量借鉴了Spring Cloud的分布式跟踪解决方案。对于大多数用户而言,Sleuth应该是不可见的,并且您与外部系统的所有交互都应自动进行检测。您可以简单地在日志中捕获数据,也可以将其发送到远程收集器服务。

Spring Cloud Data Flow

用于Cloud Foundry和Kubernetes的基于微服务的流式处理和批处理数据处理。

提供了用于为流和批处理数据管道创建复杂拓扑的工具。数据管道包含使用Spring Cloud StreamSpring Cloud Task微服务框架构建的Spring Boot应用程序。

Spring Cloud Stream

Spring Cloud Stream是一个框架,用于构建与共享消息传递系统连接的高度可扩展的事件驱动型微服务。

该框架提供了一个灵活的编程模型,该模型建立在已经建立并熟悉的Spring习惯用法和最佳实践的基础上,包括对持久性pub / sub语义,使用者组和有状态分区的支持。

Spring Cloud Zookeeper

通过自动配置并绑定到Spring Environment和其他Spring编程模型习惯用法,为Spring Boot应用程序提供了Apache Zookeeper集成。通过一些简单的注释,您可以快速启用和配置应用程序内的通用模式,并使用Zookeeper构建大型分布式系统。提供的模式包括服务发现和分布式配置。

Spring Cloud Contract

Spring Cloud Contract是一个总括项目解决方案,可帮助用户成功实施“消费者驱动合同”方法。

Spring Cloud Gateway

该项目提供了一个用于在Spring MVC之上构建API网关的库。Spring Cloud Gateway旨在提供一种简单而有效的方法来路由到API,并为它们提供跨领域的关注,例如:安全性,监视/指标和弹性。

Spring Cloud OpenFeign

Spring Cloud OpenFeign通过自动配置并绑定到Spring Environment和其他Spring编程模型惯用法为Spring Boot应用程序提供集成。

注:上述展示部分项目,如需查看更多项目可查看官网。

参考