前言:

Spring Cloud是什么:

官网说明
SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,
全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封
装之外,还有一些选型中立的开源组件。
 
SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发
人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总
线、全局锁、决策竞选、分布式会话等等,它们都可以用SpringBoot的开发风格做到一键启动和部署。
 
SpringBoot并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,
通过SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和
易维护的分布式系统开发工具包

SpringCloud=分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶
 
SpringCloud和SpringBoot是什么关系 
SpringBoot专注于快速方便的开发单个个体微服务。
SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,
为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务
 
SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖的关系.
SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架。
 
Dubbo是怎么到SpringCloud的?
哪些优缺点让去技术选型
1、 目前成熟的互联网架构(分布式+服务治理Dubbo)
2、我们把SpringCloud VS DUBBO进行一番对比
对比结果:
 

2.1、微服务应该具备的功能

微服务具有以下的特点:

微服务的功能主要体现在以下儿个方面:

 

2.1.1 服务的注册与发现

2.1 .2 服务的负载均衡

 服务的负载均衡
 

将服务注册中心高可用

2.1.3 服务的容错

1个微服务系统有很多个服务,当 服务 F因某些原因导致了服务的不可用
来自于用户的网络请求需要调用服务F
 
由于服务F 无响应,用户的请求都处于阻塞状态 在高并发的场景下 短时间内会导致服务器的
线程资源消耗殆尽。
 
依赖于服务F 的其他的服务 ,例如 图中的服务 E、服务G 、服务 J,
会等待服务F 的响应,处于阻塞状态,导致这些服务的线程资源消耗殆尽
 
会出现:雪崩效应
为了解决分布式系统的雪崩效应,分布式系统引进了熔断器机制
 
熔断器( Circuit Breaker)一词来源于物理学中的电路知识 它的作用是当电路中 
出现故障时迅速切断电路,起到保护电路的作用
 
当一 个服务的处理用户请求 失败次数在一 定时间内于设定的阀值时,熔断器处于关闭状态,服务正常
当服务处理用户请求的失败次数大于设定的阀值时,说明服务出现了故障,打开熔断器,
这时所有的请求会执行快速失败,不执行业务逻辑。
 
当处于打开状态的熔断器时一 段时间后会处于半打开状态,并执行 一定数量的请求
剩余的请求会执行快速失败,若执行的请求失败了,则继续打开熔断器;若成功了,则将熔断器关闭

作用:

Netflix的 Hystrix 熔断器开源组件功能非常强大,不仅有烙断器的功能,还有熔断器的状态
监测,并提供界面友好的 UI 开发人员或者运维人员通过 UI 界面能够直观地看到熔断器的状
态和各种性能指标。

2.1.4 服务网关

2.1 .5 服务配置的统一管理

大致过程如下:
 

对于集群化的服务 可以通过使用消息总线来刷新多个服务实例。如果服务数量较多,对配置
中心需要考虑集群化部署,从而使配置中心高可用,做分布式集群
 

2.1.6 服务链路追踪

微服务系统是一个分布式架构的系统,微服务系统按业务划分服务单元, 一个微服务系统
往往有很多个服务单元。由于服务单元数量很多且业务复杂,
服务与服务之间的调用有可能非常复杂,一 旦出现了异常和
错误,就会很难去定位。所以在微服务架构中,必须实现分
布式链路追踪,去跟进 个请求到底有哪些服务参与,参与
的顺序又是怎样的 ,从而使每个请求链路清晰可见,出了问
题很快就能定位。
 
 

2.2、SpringCloud

2.2.1 简介

Spring Cloud 是基于 Spring Boot的, Spring Boot 是由 Pivotal 团队提供的全新 Web框架
它主要的特点就是简化了开发和部署的过程
简化了 Spring 复杂的配置和依赖管理,通过起步依赖和内置 Servilet 容器能够使开发者迅速搭一个 Web 工程。
Spring Cloud 在开发部署上继承了 Spring Boot的一些优点,提高其在开发和部署上的效率。
 
 
Spring Cloud 的首要目标就是通过提供 系列开发组件和框架,帮助开发者迅速搭建一个分布式的微服务系统
 
 

2.2.2 常用组件

1、服务注册和发现组件 Eureka
利用 Eureka 组件可以很轻松地实现服务的注册和发现的功能。
2、熔断组件 Hystrix
Hystrix是一个 熔断组件,它除了有一些些基本的熔断器功能外,还能够实现服务降级、服务限流的功能。
3、负载均衡组件 Ribbon
Ribbon是一个个负载均衡组件,它通常和 Eureka Zuul RestTemplate Feign 配合使用。
4、路由网关 Zuul
路由网关 Zuul 有智能路由和过滤的功能。内部服务的 API 接口通过 Zuul 网关统 一对外暴露,
内部服务的 API 接口不直接暴露,防止了内部服务敏感信息对外暴露。
5、Spring Cloud Config
Spring Cloud Config 组件提供了配置文件统 管理的功能。
 
Spring Cloud Config Server包括Server端和 Client Server 端读取本地仓库或者远程仓库的配
置文件,所有的 Client向 Server读取配置信息,从而达到配置文件统 管理的目的。
 
6、Spring Cloud Security
Spring Cloud Security 是对 Spring Security 组件的封装 Spring Cloud Security 向服务单元
提供了用户验证和权限认证。(很少使用)
7、Spring Cloud Sleuth
Spring Cloud Sleuth 是一个分布式链路追踪组件,它封装了 Dapper 、Zipkin、 Kibana 等组
件,通过它可以知道服务之间的相互依赖关系,并实时观察链路的调用情况
8、Spring Cloud Stream
Spring Cloud Stream Spring Cloud 框架的数据流操作包,可以封装 RabbitMq ActiveMq
Kafka Red is 等消息组件, 利用 Spring Cloud Stream 可以实现消息的接收和发送。

2.2.3 项目一览表

 

2.3、Dubbo简介

Dubbo 是阿里巴巴开源的一个分布式服务框架,致力于提供高性能和 透明化的 RPC 远程
服务调用方 ,以及 SOA 服务冶理方案 。
 
 核心:
 

架构图:

流程图如下: 

特性: 

2.4、spring cloud与Dubbo的比较

 

2、Spring Cloud - 入门概述的更多相关文章

  1. spring cloud 入门系列四:使用Hystrix 实现断路器进行服务容错保护

    在微服务中,我们将系统拆分为很多个服务单元,各单元之间通过服务注册和订阅消费的方式进行相互依赖.但是如果有一些服务出现问题了会怎么样? 比如说有三个服务(ABC),A调用B,B调用C.由于网络延迟或C ...

  2. Spring Cloud 入门教程 - 搭建配置中心服务

    简介 Spring Cloud 提供了一个部署微服务的平台,包括了微服务中常见的组件:配置中心服务, API网关,断路器,服务注册与发现,分布式追溯,OAuth2,消费者驱动合约等.我们不必先知道每个 ...

  3. Spring Cloud 入门教程(七): 熔断机制 -- 断路器

    对断路器模式不太清楚的话,可以参看另一篇博文:断路器(Curcuit Breaker)模式,下面直接介绍Spring Cloud的断路器如何使用. SpringCloud Netflix实现了断路器库 ...

  4. Spring Cloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务

    首先简单解释一下什么是声明式实现? 要做一件事, 需要知道三个要素,where, what, how.即在哪里( where)用什么办法(how)做什么(what).什么时候做(when)我们纳入ho ...

  5. Spring Cloud 入门教程(八): 断路器指标数据监控Hystrix Dashboard 和 Turbine

    1. Hystrix Dashboard (断路器:hystrix 仪表盘)  Hystrix一个很重要的功能是,可以通过HystrixCommand收集相关数据指标. Hystrix Dashboa ...

  6. Spring Cloud 入门教程(十):和RabbitMQ的整合 -- 消息总线Spring Cloud Netflix Bus

    在本教程第三讲Spring Cloud 入门教程(三): 配置自动刷新中,通过POST方式向客户端发送/refresh请求, 可以让客户端获取到配置的最新变化.但试想一下, 在分布式系统中,如果存在很 ...

  7. Spring Cloud 入门教程(九): 路由网关zuul

    在微服务架构中,需要几个关键的组件,服务注册与发现.服务消费.负载均衡.断路器.智能路由.配置管理等,由这几个组件可以组建一个简单的微服务架构.客户端的请求首先经过负载均衡(zuul.Ngnix),再 ...

  8. Spring Cloud 入门教程(五): Ribbon实现客户端的负载均衡

    接上节,假如我们的Hello world服务的访问量剧增,用一个服务已经无法承载, 我们可以把Hello World服务做成一个集群. 很简单,我们只需要复制Hello world服务,同时将原来的端 ...

  9. Spring Cloud 入门教程(一): 服务注册

    1.  什么是Spring Cloud? Spring提供了一系列工具,可以帮助开发人员迅速搭建分布式系统中的公共组件(比如:配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁 ...

随机推荐

  1. FE面试题库

    一.HTML 序号 面试题目 难度等级 回答要点 H1 简述编写HTML需要注意哪些事项? ☆ DOCTYPE.charset.viewport.语义化.CSS与JS的位置.DOM层级.结构样式行为的 ...

  2. SQL空和NULL的区别

    1.NULL意思为缺失的值(missing value). 2.三值逻辑(three-valued-logic: TRUE,FALSE,UNKNOWN). 在SQL中有三个逻辑谓词:TURE,FALS ...

  3. Hunger Snake 2

  4. python学习之老男孩python全栈第九期_day022作业

    1. 写一个求正方形周长和面积的类 class Square: def __init__(self, length): self.length = length def area(self): ret ...

  5. jQuery自适应-3D旋转轮播图

    3D旋转轮播图 本例源于(站长之家实例http://sc.chinaz.com/jiaoben/170215391070.htm) 其他相似示例(https://www.cnblogs.com/inc ...

  6. Java快速入门-02-基础篇

    Java快速入门-02-基础篇 上一篇应该已经让0基础的人对 Java 有了一些了解,接一篇更进一步 使用 Eclipse 快捷键 这个老师一般都经常提,但是自己不容易记住,慢慢熟练 快捷键 快捷键作 ...

  7. BAT脚本编写教程简单入门篇

    BAT脚本编写教程简单入门篇 批处理文件最常用的几个命令: echo表示显示此命令后的字符 echo on  表示在此语句后所有运行的命令都显示命令行本身 echo off 表示在此语句后所有运行的命 ...

  8. Android解析WindowManager(二)Window的属性

    前言 在上一篇文章我们学习了WindowManager体系,了解了Window和WindowManager之间的关系,这一篇我们接着来学习Window的属性. 1.概述 上一篇文章中我们讲过了Wind ...

  9. mongodb shell警告

    # mongoMongoDB shell version: 3.0.2connecting to: testServer has startup warnings: 2015-05-09T12:34: ...

  10. java 反射和泛型

    反射 在计算机科学中,反射是指计算机程序在运行时(Run time)可以访问.检测和修改它本身状态或行为的一种能力.[1]用比喻来说,反射就是程序在运行的时候能够“观察”并且修改自己的行为. 要注意术 ...