前言:

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. Java 泛型的使用

    一.泛型的简介1.为什么要使用泛型? 一般使用在集合上,比如现在把一个字符串类型的值放入到集合里面,这个时候,这个值放到集合之后,失去本身的类型,只能是object类型.这时,如果想要对这个值进行类型 ...

  2. python_Django 实现登入功能form表单的参数接收处理

    1.创建Django工程. 参考https://www.cnblogs.com/CK85/p/10159159.html中步骤. 2.在urls.py文件中添加url分发路径 "" ...

  3. 安装和使用phpstorm

    下载网址:https://www.jetbrains.com/phpstorm/ 第一步:解压在官网上所下的文件,双击 Phpstorm10.0.3.exe 第二步:安装目录选择,自定义选择安装目录, ...

  4. java线程的常用方法

    java线程的常用方法 编号 方法 说明 1 public void start() 使该线程开始执行:Java 虚拟机调用该线程的 run 方法. 2 public void run() 如果该线程 ...

  5. CSS属性之relative

    0.相对定位relative特点 相对定位relative元素总是会占据位置,所占据的位置是在relative元素没有设置left/top/right/bottom属性时的位置: 相对定位relati ...

  6. js图片跟随鼠标移动

    <div id="wrapper"><img src="http://images.cnblogs.com/cnblogs_com/rain-null/ ...

  7. centos配置网络

    [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE="eth0"BOOTPROTO=&qu ...

  8. mybatis大框架

    MyBatis   开源的数据持久化层框架 实体类与SQL语句之间建立映射关系 一:MyBatis前身是IBatis,本是Apache的一个开源的项目, 基于SQL语法,简单易学 ,是耦合度降低,方便 ...

  9. D3.js 入门教程

    最近需要用到d3, 记录下d3的教程 网上搜了几个关于d3的教程 D3.js 入门教程      http://wiki.jikexueyuan.com/project/d3wiki/author.h ...

  10. FineReport和泛微OA(Ecology)的单点登录集成方案

    最近出现了很多关于帆软报表和泛微OA的集成问题,均出现在“单点登录”上.直接也有相关的文章介绍一些FineReport和泛微集成的背景.价值等,以及FineReport和OA的深度集成的方案,但是并没 ...