您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

一分钟快速了解Spring Cloud

时间:2019-11-20 14:56:44  来源:  作者:

一、Spring Cloud是什么?能做什么?

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

二、SpringCloud 和Dubbo对比

根据微服务架构在各方面的要素,看看Spring Cloud和Dubbo都提供了哪些支持。

一分钟快速了解Spring Cloud

 

三、核心组件

Spring Cloud的核心组件:

u 服务发现——Netflix Eureka

u 客服端负载均衡——Netflix Ribbon

u 断路器——Netflix Hystrix

u 服务网关——Netflix Zuul

u 分布式配置——Spring Cloud Config

1.Eureka(服务注册中心)

一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个JAVA客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。Netflix在其生产环境中使用的是另外的客户端,它提供基于流量、资源利用率以及出错状态的加权负载均衡。

一分钟快速了解Spring Cloud

 

2.Ribbon(负载均衡器)

Ribbon,主要提供客户侧的软件负载均衡算法。

Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等。Ribbon内置可插拔、可定制的负载均衡组件。下面是用到的一些负载均衡策略:

u 简单轮询负载均衡

u 加权响应时间负载均衡

u 区域感知轮询负载均衡

u 随机负载均衡

Ribbon中还包括以下功能:

u 易于与服务发现组件(比如Netflix的Eureka)集成

u 使用Archaius完成运行时配置

u 使用JMX暴露运维指标,使用Servo发布

u 多种可插拔的序列化选择

等功能。

一分钟快速了解Spring Cloud

 

3.Hystrix(断路器)

断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU 周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决。如果问题似乎已经得到纠正,应用程序可以尝试调用操作。

断路器增加了稳定性和灵活性,以一个系统,提供稳定性,而系统从故障中恢复,并尽量减少此故障的对性能的影响。它可以帮助快速地拒绝对一个操作,即很可能失败,而不是等待操作超时(或者不返回)的请求,以保持系统的响应时间。如果断路器提高每次改变状态的时间的事件,该信息可以被用来监测由断路器保护系统的部件的健康状况,或以提醒管理员当断路器跳闸,以在打开状态。

一分钟快速了解Spring Cloud

 

4.Zuul(网关)

类似Nginx,反向代理的功能,不过netflix自己增加了一些配合其他组件的特性。

一分钟快速了解Spring Cloud

 

5.Spring Cloud Config(配置中心)

这个还是静态的,得配合Spring Cloud Bus实现动态的配置更新。

一分钟快速了解Spring Cloud

 

四、Spring Cloud架构流程

一分钟快速了解Spring Cloud

 

通过这张图,我们来了解一下各组件配置使用运行流程:

1. 请求统一通过API网关(Zuul)来访问内部服务.

2. 网关接收到请求后,从注册中心(Eureka)获取可用服务

3. 由Ribbon进行均衡负载后,分发到后端具体实例

4. 微服务之间通过Feign进行通信处理业务

5. Hystrix负责处理服务超时熔断

6. Turbine监控服务间的调用和熔断相关指标

·

五、Spring Cloud体系介绍

Spring Cloud由众多子项目组成,如Spring Cloud Config、Spring Cloud Netflix、Spring Cloud Consul 等,提供了搭建分布式系统及微服务常用的工具,如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性token、全局锁、选主、分布式会话和集群状态等,满足了构建微服务所需的所有解决方案。

具体如下:

1、Spring Cloud Config 配置中心,利用git集中管理程序的配置。

2、Spring Cloud Netflix 集成众多Netflix的开源软件
3、Spring Cloud Bus 消息总线,利用分布式消息将服务和服务实例连接在一起,用于在一个集群中传播状态的变化 
4、Spring Cloud for Cloud Foundry 利用Pivotal Cloudfoundry集成你的应用程序
5、Spring Cloud Cloud Foundry Service Broker 为建立管理云托管服务的服务代理提供了一个起点。
6、Spring Cloud Cluster 基于Zookeeper, redis, Hazelcast, Consul实现的领导选举和平民状态模式的抽象和实现。
7、Spring Cloud Consul 基于Hashicorp Consul实现的服务发现和配置管理。
8、Spring Cloud Security 在Zuul代理中为OAuth2 rest客户端和认证头转发提供负载均衡
9、Spring Cloud Sleuth SpringCloud应用的分布式追踪系统,和Zipkin,HTrace,ELK兼容。
10、Spring Cloud Data Flow 一个云本地程序和操作模型,组成数据微服务在一个结构化的平台上。
11、Spring Cloud Stream 基于Redis,Rabbit,Kafka实现的消息微服务,简单声明模型用以在Spring Cloud应用中收发消息。
12、Spring Cloud Stream App Starters 基于Spring Boot为外部系统提供spring的集成
13、Spring Cloud Task 短生命周期的微服务,为SpringBooot应用简单声明添加功能和非功能特性。
14、Spring Cloud Task App Starters
15、Spring Cloud Zookeeper 服务发现和配置管理基于Apache Zookeeper。
16、Spring Cloud for Amazon Web Services 快速和亚马逊网络服务集成。
17、Spring Cloud Connectors 便于PaaS应用在各种平台上连接到后端像数据库和消息经纪服务。
18、Spring Cloud Starters (项目已经终止并且在Angel.SR2后的版本和其他项目合并)
19、Spring Cloud CLI 插件用Groovy快速的创建Spring Cloud组件应用。

当然这个数量还在一直增加...

六、Spring Cloud框架特点

1.约定优于配置。

2.适用于各种环境。

开发、部署在 PC Server或各种云环境(例如阿里云、AWS等)均可。

3.隐藏了组件的复杂性,并提供声明式、无xml的配置方式。

4.开箱即用,快速启动。

5.轻量级的组件

Spring Cloud整合的组件大多比较轻量。例如 Eureka、Zuul,等等,都是各自领域轻量级的实现。

6.组件丰富,功能齐全

Spring Cloud为微服务架构提供了非常完整的支持。例如,配置管理、服务发现、断路器、微服务网关等。

7.选型中立、丰富

例如, Spring Cloud支持使用 Eureka、 Zookeeper或 Consul实现服务发现。

8.灵活

Spring Cloud的组成部分是解耦的,开发人员可按需灵活挑选技术选型。



Tags:Spring Cloud   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
目前,Spring Cloud Gateway是仅次于Spring Cloud Netflix的第二个最受欢迎的Spring Cloud项目(就GitHub上的星级而言)。它是作为Spring Cloud系列中Zuul代理的继任者而创建的。...【详细内容】
2021-04-21  Tags: Spring Cloud  点击:(427)  评论:(0)  加入收藏
Eureka 是Spring Cloud Netflix 微服务套件中的一部分,它基于Netflix Eureka做了二次开发,主要负责完成微服务架构中的服务治理功能。Eureka 基础架构三个核心要素1:服务注册...【详细内容】
2021-01-14  Tags: Spring Cloud  点击:(162)  评论:(0)  加入收藏
写在前面要出发周边游(以下简称要出发)是国内知名的主打「周边游」的在线旅行网站,为了降低公司内部各个业务模块的耦合度,提高开发、交付及运维效率,我们在 2017 年就基于 Sprin...【详细内容】
2020-11-27  Tags: Spring Cloud  点击:(156)  评论:(0)  加入收藏
Spring Cloud的开源可分布式物联网(IOT)平台,用于快速开发、部署物联设备接入项目,是一整套物联系统解决方案物联网架构 模块划分,四层架构 驱动层:用于提供标准或者私有协议...【详细内容】
2020-11-03  Tags: Spring Cloud  点击:(431)  评论:(0)  加入收藏
01 事件背景6月25日, Apache 官方安全团队通过邮件公开报告了一个高危漏洞,邮件中介绍了 HTTP/2 拒绝服务漏洞的细节及解决方案。如下图所示:漏洞详情链接:http://mail-archives...【详细内容】
2020-07-09  Tags: Spring Cloud  点击:(113)  评论:(0)  加入收藏
1、Spring Cloud介绍Spring Cloud家族有许多成员:Spring Cloud Config - 配置管理工具包,集中化管理集群配置,目前支持本地存储、Git 以及 Subversion;Spring Cloud Bus - 事件、...【详细内容】
2020-06-21  Tags: Spring Cloud  点击:(64)  评论:(0)  加入收藏
Spring Cloud是一套非常完善的分布式框架,目前很多企业开始用微服务、Spring Cloud的优势是显而易见的。Spring Cloud对于中小型互联网公司来说是一种福音,因为这类公司往往没...【详细内容】
2020-06-12  Tags: Spring Cloud  点击:(112)  评论:(0)  加入收藏
在我搭建基于Spring Cloud的微服务体系应用的时候所需要或者是常用的属性配置文件,还有这些属性的用途,此配置大多数来自互联网,稍作整理,记录再此,以便忘记的时候可以快速的检...【详细内容】
2020-02-25  Tags: Spring Cloud  点击:(47)  评论:(0)  加入收藏
小编2015年进入一家互联网公司开始接触微服务。当时对微服务的概念也是懵懵懂懂。在逐步的探索中,踩了大大小小的坑不计其数。最开始使用的还是Springboot1.4.x的版本。版本...【详细内容】
2019-12-19  Tags: Spring Cloud  点击:(91)  评论:(0)  加入收藏
一、Spring Cloud是什么?能做什么?Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消...【详细内容】
2019-11-20  Tags: Spring Cloud  点击:(91)  评论:(0)  加入收藏
▌简易百科推荐
近日只是为了想尽办法为 Flask 实现 Swagger UI 文档功能,基本上要让 Flask 配合 Flasgger, 所以写了篇 Flask 应用集成 Swagger UI 。然而不断的 Google 过程中偶然间发现了...【详细内容】
2021-12-23  Python阿杰    Tags:FastAPI   点击:(6)  评论:(0)  加入收藏
文章目录1、Quartz1.1 引入依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>...【详细内容】
2021-12-22  java老人头    Tags:框架   点击:(12)  评论:(0)  加入收藏
今天来梳理下 Spring 的整体脉络啦,为后面的文章做个铺垫~后面几篇文章应该会讲讲这些内容啦 Spring AOP 插件 (了好久都忘了 ) 分享下 4ye 在项目中利用 AOP + MybatisPlus 对...【详细内容】
2021-12-07  Java4ye    Tags:Spring   点击:(14)  评论:(0)  加入收藏
&emsp;前面通过入门案例介绍,我们发现在SpringSecurity中如果我们没有使用自定义的登录界面,那么SpringSecurity会给我们提供一个系统登录界面。但真实项目中我们一般都会使用...【详细内容】
2021-12-06  波哥带你学Java    Tags:SpringSecurity   点击:(18)  评论:(0)  加入收藏
React 简介 React 基本使用<div id="test"></div><script type="text/javascript" src="../js/react.development.js"></script><script type="text/javascript" src="../js...【详细内容】
2021-11-30  清闲的帆船先生    Tags:框架   点击:(19)  评论:(0)  加入收藏
流水线(Pipeline)是把一个重复的过程分解为若干个子过程,使每个子过程与其他子过程并行进行的技术。本文主要介绍了诞生于云原生时代的流水线框架 Argo。 什么是流水线?在计算机...【详细内容】
2021-11-30  叼着猫的鱼    Tags:框架   点击:(21)  评论:(0)  加入收藏
TKinterThinter 是标准的python包,你可以在linx,macos,windows上使用它,你不需要安装它,因为它是python自带的扩展包。 它采用TCL的控制接口,你可以非常方便地写出图形界面,如...【详细内容】
2021-11-30    梦回故里归来  Tags:框架   点击:(27)  评论:(0)  加入收藏
前言项目中的配置文件会有密码的存在,例如数据库的密码、邮箱的密码、FTP的密码等。配置的密码以明文的方式暴露,并不是一种安全的方式,特别是大型项目的生产环境中,因为配置文...【详细内容】
2021-11-17  充满元气的java爱好者  博客园  Tags:SpringBoot   点击:(25)  评论:(0)  加入收藏
一、搭建环境1、创建数据库表和表结构create table account(id INT identity(1,1) primary key,name varchar(20),[money] DECIMAL2、创建maven的工程SSM,在pom.xml文件引入...【详细内容】
2021-11-11  AT小白在线中  搜狐号  Tags:开发框架   点击:(29)  评论:(0)  加入收藏
SpringBoot开发的物联网通信平台系统项目功能模块 功能 说明 MQTT 1.SSL支持 2.集群化部署时暂不支持retain&will类型消 UDP ...【详细内容】
2021-11-05  小程序建站    Tags:SpringBoot   点击:(56)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条