很多同学都了解了Spring ,了解了 Spring Boot, 但对于 Spring Cloud 是什么还是比较懵逼的。

本文带你简单的了解下,什么是Spring Cloud。

Spring Cloud 是什么

从字面理解,Spring Cloud 就是致力于分布式系统、云服务的框架。

Spring Cloud 是整个 Spring 家族中新的成员,是最近云服务火爆的必然产物。

Spring Cloud 为开发人员提供了快速构建分布式系统中一些常见模式的工具,例如:

配置管理
服务注册与发现
断路器
智能路由
服务间调用
负载均衡
微代理
控制总线
一次性令牌
全局锁
领导选举
分布式会话
集群状态
分布式消息
……
使用 Spring Cloud 开发人员可以开箱即用的实现这些模式的服务和应用程序。这些服务可以任何环境下运行,包括分布式环境,也包括开发人员自己的笔记本电脑以及各种托管平台。

Spring Cloud 与 Spring Boot

Spring Cloud 基于 Spring Boot 来进行构建服务。这样,开发Spring Cloud 组件时,就能依托 Spring Boot 来实现快速开发。

有关 Spring Boot 内容,可见笔者的视频课程《基于Spring Boot的博客系统实战》(https://waylau.com/spring-boot-blog-video-release/)。

Spring Cloud 与微服务

Spring Cloud 是构建分布式系统的利器,而微服务是当下最火热的分布式系统的类型之一,所以,Spring Cloud 天然是支持微服务的构建的。

在早些年,国内互联网公司盛行采用 Dubbo 来架构微服务。如今,有了更好的选择,那就是 Spring Cloud。有数据显示,Spring Cloud不管是在国内,还是国外,用户数都呈现出爆发式增长。而且,Dubbo 主要只是为了解决服务通信、服务注册等问题,而 Spring Cloud 却是提供微服务架构的完整的解决方案。

那么什么是微服务?

所谓微服务,就是:

微服务架构风格就像是把小的服务开发成单一应用的形式, 运行在其自己的进程中,并采用轻量级的机制进行通信(一般是 HTTP 资源 API)。这些服务都是围绕业务能力来构建,通过全自动部署工具来实现独立部署。这些服务,其可以使用不同的编程语言和不同的数据存储技术,并保持最小化集中管理。

更多有关微服务的理论,可见笔者的博客:https://waylau.com/ahout-microservices/ 。

Spring Cloud 如何实现微服务

说了那么多理论,那么微服务架构如何真实的落地呢?课程
《基于Spring Cloud的微服务实战》(https://waylau.com/spring-cloud-video-release/)给出了真实的答案。

在《基于Spring Cloud的微服务实战》课程中,作者基于Spring Boot + Spring Cloud 技术栈来实现了一个完整的天气预报系统。在课程中,先从 Spring Boot 入手,从0到1 快速搭建了具备高并发能力、界面友好的天气预报系统。而后剖析单块架构的利弊,从而引入微服务架构的概念,并实从1到0实现微服务的拆分。最后引入Spring Cloud 技术来实现对这些微服务的治理,重点讲解了服务注册与发现、服务交互、服务消费、负载均衡、API网关、配置中心、服务熔断、自动扩展等方面的话题。

通过学习该课程,学员不但可以学会 Spring Boot 及 Spring Cloud 最新的周边技术栈(本课程基于最新的 Spring Boot 2.0.0.M4 以及 Spring Cloud Finchley.M2),掌握如何运用上述技术进行整合,搭建框架的能力,熟悉单体架构及微服务架构的特点,并最终实现掌握构建微服务架构的实战能力。

搭建 Spring Cloud 微服务系统需要哪些技术

本课程所涉及的相关的技术有 :

XML解析:JABX
JSON序列化:Jackson
缓存:Redis
定时器:Quartz Scheduler
Java模版技术Thymeleaf
前端样式:Bootstrap
API网关:Zuul
服务注册与发现:Eureka Server、Eureka Client
服务交互:RestTemplate、Apache HttpClient
服务消费:Ribbon、OpenFeign
负载均衡:Ribbon
配置中心:Config Server、Config Client
服务熔断:Hystrix
项目构建:Gradle
通过本课程的学习,能够掌握架构微服务系统的能力!

参考资料

要学习 Spring Cloud 微服务,除了上面的课程之前,老卫还撰写了多门微服务相关的开源书籍,注意,都是免费的书籍哦!!!

简述 Microservices(微服务):https://waylau.com/ahout-microservices/
Spring Boot 教程:https://github.com/waylau/spring-boot-tutorial
Spring Cloud 教程:https://github.com/waylau/spring-cloud-tutorial
Gradle 3 用户指南:https://github.com/waylau/gradle-3-user-guide
Spring Security 教程:https://github.com/waylau/spring-security-tutorial
Thymeleaf 教程:https://github.com/waylau/thymeleaf-tutorial

简述 Spring Cloud 是什么1的更多相关文章

  1. 简述 Spring Cloud 是什么2

    一.概念定义       Spring Cloud是一个微服务框架,相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案. Spring Cloud对微服务基础框架Ne ...

  2. Spring Cloud负载均衡:使用zuul作服务器端负载均衡

    1.目的: 本文简述Spring Cloud负载均衡之服务器负载均衡模式,使用组件为zuul. zuul作为Spring Cloud中的网关组件,负责路由转发.身份验证.请求过滤等等功能,那么我们可以 ...

  3. 几种常见的微服务架构方案简述——ZeroC IceGrid、Spring Cloud、基于消息队列

    微服务架构是当前很热门的一个概念,它不是凭空产生的,是技术发展的必然结果.虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合 ...

  4. 读书笔记——spring cloud 中 HystrixCommand的四种执行方式简述

    读了<Spring Cloud 微服务实战>第151-154页, 总结如下: Hystrix存在两种Command,一种是HystrixCommand,另一种是HystrixObserva ...

  5. Spring Cloud配置文件加载优先级简述

    Spring Cloud中配置文件的加载机制与其它的Spring Boot应用存在不一样的地方:如它引入了bootstrap.properties的配置文件,同时也支持从配置中心中加载配置文件等:本文 ...

  6. Spring Cloud 微服务中搭建 OAuth2.0 认证授权服务

    在使用 Spring Cloud 体系来构建微服务的过程中,用户请求是通过网关(ZUUL 或 Spring APIGateway)以 HTTP 协议来传输信息,API 网关将自己注册为 Eureka ...

  7. Spring Cloud实践之服务注册与发现Eureka

    一.简述: 服务提供者producer与服务消费者consumer都注册到eureka server,然后服务consumer在其应用内直接调用producer的服务名来调用服务,而不是像之前一样调用 ...

  8. springcloud(五):Spring Cloud 配置中心的基本用法

    Spring Cloud 配置中心的基本用法 1. 概述 本文介绍了Spring Cloud的配置中心,介绍配置中心的如何配置服务端及配置参数,也介绍客户端如何和配置中心交互和配置参数说明. 配置中心 ...

  9. Spring Cloud Config Server 节点迁移引起的问题,请格外注意这一点!

    前言: 虽然强烈推荐选择使用国内开源的配置中心,如携程开源的 Apollo 配置中心.阿里开源的 Nacos 注册&配置中心. 但实际架构选型时,根据实际项目规模.业务复杂性等因素,有的项目还 ...

随机推荐

  1. python ---解决高并发超卖问题

    使用redis 解决美多商城超卖的问题 import redis r = redis.Redis(host='localhost', port=6379) #定义过载 def limit_handle ...

  2. 外媒:比特币大陆将于9月IPO 规模或高达180亿美元

    看看你们坚持买的比特币是否值得? 北京时间8月13日上午消息,据CoinDesk获得的文件,比特币大陆将于今年9月申请首次公开募股(IPO),其规模可能高达180亿美元,市值预计在400亿美元到500 ...

  3. 10-部署配置dashboard插件

    配置和安装 dashboard 官方文件目录:kubernetes/cluster/addons/dashboard 我们需要使用的yaml文件 $ ls *.yaml dashboard-contr ...

  4. JavaScript防篡改对象

    不可扩展对象 默认情况下,所有对象都是可扩展的,使用Object.preventExtensions()方法可以改变这一行为. var person = { name: "Hiram&quo ...

  5. Apache Commons Digester 三(规则注解)

    前言 Digester规则的定义除了可以在代码中直接new规则添加到 Digester对象外,还可以用xml配置规则,如下所示: <digester-rules> <pattern ...

  6. 比Python、Java更快的 Go 语言,能否称霸江湖?

    关注之后加星标,江湖要事早知道 ​ 文章来源:jb51.net 有一种语言堪称比语言排行榜前五热门选手的Python.Java更快,它就是GO语言. Go于2009年11月正式宣布推出,成为开放源代码 ...

  7. 从零开始学 Web 之 ES6(四)ES6基础语法二

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  8. WC2017游记 & 能力残废康复计划

    懒癌晚期的蒟蒻一年多没有更Blog了… 这次冬眠营去绍一省好好地游玩了一番,体验了一段时间的豪华自助餐,成功吃胖… 第一课堂的东西基本还是没吸收…听着觉得有点道理,结果过几分钟就忘了…可能最大的收获就 ...

  9. 从逻辑思维中学习CSS,从宽高说起

    从宽高说起 从宽高说起,我们知道一个物体的大小是由长.宽.高三个方向的尺寸决定的,但是你想啊电脑显示器是一个平面的,而不是3维,另因网页大部分情况下只需要使用到2维,所以为了简单在CSS中只有宽和高的 ...

  10. String 字符串中含有 Unicode 编码时,转为UTF-8

    1.单纯的Unicode 转码 String a = "\u53ef\u4ee5\u6ce8\u518c"; a = new String(a.getBytes("UTF ...