【Spring全家桶系列之核心篇 | Spring Cloud】- 第一章 Spring Cloud概述

一. Spring Cloud是什么?

随着Spring Cloud成为炙手可热的微服务架构,我们可能经常会被问道:“用过Spring Cloud吗?”,“Spring Cloud能做什么?”,或者“你们为什么用Spring Cloud,而不用其他微服务架构”之类的问题。

那么到底什么是Spring Cloud,我们为什么使用Spring Cloud呢?

想要了解Spring Cloud,我们就得先搞清楚什么是微服务。

百度百科上说:“微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。”

简单解释就是,微服务是将庞大的系统进行分解,形成独立的几个、甚至几十个小的项目,同时根据项目规模,数据库也可能进行分解,使得各服务都可以单独运作,从而提供开发、学习、扩展等效率。

比如笔者曾经参与过的一个项目,包含产品管理、用户管理、订单管理、电商平台等等,当发展到一定程度时,单纯代码就不止2G,团队成员机器配置不得不进行了升级,因为8G内存,系统后来已经跑不起来了,即使我们将系统升级为内存16G,固态硬盘,编译加启动通常加起来也要20分钟,而并不是所有人都能升级到此程度,很多人只能升级到12G内存,让系统跑起来,结果团队大部分人,编译启动一次至少半小时,有的人甚至要等一个小时,效率可想而知,而扩展(不论是代码、部署,还是其他都变得相当困难)

当然有很多公司当年都碰到过这种情况,为了解决这种问题,人们经过思考后,提出了微服务的概念,随后大批公司开始了相关的研究开发,现在,最为常用的就是Spring Cloud,及Dubbox框架。

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

spring cloud的官方文档说:“Spring Cloud为开发人员提供工具,使开发人员可以快速构建分布式系统中的一些常见模式(如:配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调引出样板模式(boiler plate patterns),并且开发人员使用Spring Cloud可以快速支持实现那些模式的服务和应用。它们将在任何分布式环境中运行良好,包括开发人员自己的笔记本电脑,裸机数据中心以及Cloud Foundry等托管平台。”

这两个描述完全很好的描述了什么是Spring Cloud,其实简单概括就是Spring Cloud是一系列框架的集合,从而可以提供可扩展的,开箱即用的,全方位的,从开发、部署,到监控的一整套的解决方案。

二. Spring Cloud特性

Spring Cloud专注于为典型的用例和可扩展性机制(包括其他用例),提供良好的开箱即用体验。

分布式/版本化配置

服务注册和发现

路由

服务到服务的呼叫

负载均衡

断路器

全局锁

主节点投选和集群状态

分布式消息传递

三. 主要模块

Spring Cloud Config:
git仓库支持的集中式外部配置管理。由配置资源直接映射到Spring,但如果非Spring应用程序需要,也支持其使用。

Spring Cloud Netflix
与多种Netflix OSS组件集成(如:Eureka,Hystrix,Zuul,Archaius等)。

Spring Cloud Bus
消息总线,通过轻量消息代理连接各个分布的节点。对于在集群中状态的更改(例如配置更改事件)很有用。

Spring Cloud Cloudfoundry
与Pivotal Cloud Foundry集成,提供服务发现功能的实现,还可以轻松实现SSO和OAuth2对资源的保护。

Spring Cloud Open Service Broker
为构建实现Open Service Broker API的服务代理提供起点。

Spring Cloud Cluster
Zookeeper,Redis,Hazelcast和Consul的主节点投选及通用状态模式的抽象与实现。

Spring Cloud Consul
使用Hashicorp Consul进行服务发现和配置管理。

Spring Cloud Security
为Zuul代理提供了负载平衡下的OAuth2客户端身份验证标头提供支持。

Spring Cloud Sleuth
Spring Cloud应用程序的分布式跟踪,兼容Zipkin,HTrace和基于日志(例如ELK)的跟踪。

Spring Cloud Data Flow
是modern runtimes的、可插拔的微服务应用程序的云原生数据管道服务。具有易于使用的DSL,拖放式的GUI和REST-API,共同简化了基于微服务的数据管道的部署。

Spring Cloud Stream
是轻量级的事件驱动型微服务框架,用于快速构建可以连接到外部系统的应用程序。在Spring Boot应用程序之间使用Apache Kafka或RabbitMQ发送和接收消息。

Spring Cloud Stream App Starters
Spring Cloud Stream App Starters是基于Spring Boot的Spring Integration的,可与外部系统集成的应用程序。

Spring Cloud Task
一个短暂的微服务框架,可快速构建执行有限的数据处理的应用程序。用于向Spring Boot应用添加功能性和非功能性特征。

Spring Cloud Task App Starters
Spring Cloud Task App Starters是Spring Boot应用程序,包括Spring Batch,它们在有限的数据处理周期后结束或停止。

Spring Cloud Zookeeper
使用Apache Zookeeper进行服务发现和配置管理。

Spring Cloud Connectors
使各种平台上的PaaS应用程序轻松连接到后端服务,如数据库和消息代理(该项目以前称为“ Spring Cloud”)。

Spring Cloud Starters
Spring Boot风格的starter项目,可以简化Spring Cloud使用者的依赖关系管理。(Angel.SR2之后,不再作为一个项目,而是与其他项目合并。)

Spring Cloud CLI
Spring Boot CLI插件,用于在Groovy中快速创建Spring Cloud应用程序

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

Spring Cloud Gateway
Spring Cloud Gateway是基于Project Reactor的智能可编程路由。

Spring Cloud OpenFeign
Spring Cloud OpenFeign通过自动配置并绑定到Spring服务,和其他Spring框架为Spring Boot应用程序提供集成。

Spring Cloud Pipelines
Spring Cloud Pipelines提供了一个可靠的部署管道,其中包含一些步骤,以确保您的应用程序可以零停机时间进行部署,并且可以轻松回滚某些错误。

Spring Cloud Function
Spring Cloud Function通过功能促进业务逻辑的实现。它支持无服务器的统一编程模型,并且能够独立运行(在本地或PaaS中)。

关注并点赞 _,之后还会陆续上其他关于Spring Cloud的内容,谢谢!

相关文章
关于微服务的一点儿想法

微服务是什么?(小白释义)

推荐视频
玩转Spring Data JPA&Spring Data JDBC

玩转 Spring 全家桶

推荐文章

系统上线后雪崩!让我们来学习 Spring Cloud Hystrix 及监控来解决雪崩问题

10 分钟教会你 Spring Boot 集成 Thymeleaf、MyBatis 完成产品的增删改查

【高阶用法】一个实例学会 Spring Cloud 的注册中心 Eureka的使用

Spring Cloud gateway与注册中心Eureka的完美集成

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码界领航

你的鼓励将是我最最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值