Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。

微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,springcloud就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多,springcloud做为大管家需要管理好这些微服务,自然需要很多小弟来帮忙。

主要的小弟有:Spring Cloud Config、Spring Cloud Netflix(Eureka、Hystrix、Zuul、Archaius...)、Spring Cloud Bus、Spring Cloud Consul、Spring Cloud Security、Spring Cloud Stream、Spring Cloud Task、Spring Cloud Zookeeper等具体可参考官网。

Spring Cloud Eureka:

  Spring Cloud Eureka是基于Spring Cloud Netflix微服务套件中的一部分,基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。

  服务注册中心:Eureka提供的服务端,提供服务发现与注册的功能。

    (1)失效剔除:默认每60秒将当前清单中超时90秒没有续约的服务剔除

    (2)自我保护:Eureka Servce在运行期间,会统计失败的比例在15分钟之内是否低于85%,如果出现低于Eureak Servce会将当前注册的信息保护起来。

  服务提供者:提供服务的应用,将自己注册到Eureka的服务端。

    (1)在启动的收发送REST请求将自己注册到Eureak服务端

    (2)在集群的情况下多个注册中心通过相互注册的形式来达到注册中心列表信息的一致。在注册到其中一台注册中心时由于多个注册中心已经相互注册,所以该注册中心会把消息转发给其他的注册中,达到信息的一致

    (3)在注册完成之后默认每30秒像注册中心发送消息告诉注册中心我还活着别把我从注册中心列表剔除,如果90秒内都没收到心跳服务会把该服务从注册中心剔除。但是如果注册中心在短时间内丢失过多的服务时(因网络原因或者其他原因)会进入自我保护模式(不会注销任何服务),在网络故障恢复后service会自动退出自我保护模式。

  服务消费者:消费者从服务注册中心获取服务列表,从而使消费者可以知道去何处调用其所需的服务。

    (1)获取服务,在我们启动服务消费者的时候,它会发送一个REST请求到注册中,来获取已注册的服务清单。获取服务是消费者的基础,所以必须确保eureka.client.fetch-registry=true(默认就是true)服务清单默认30秒更新一次

    (2)服务调用Ribbon默认采用轮询的方式进行调用,从而实现客户端的负载均衡

Spring Cloud Ribbon:

  Spring Cloud Ribbon是一个基于HTTP和Tcp的客户端负载均衡工具,它基于Netflix Ribbon实现。

Spring Cloud Hystrix:

  Spring Cloud Hystrix容错管理组件,实现断路器模式,帮助服务依赖出现的延迟和为故障提供强大的容错能力。具备服务降级、服务熔断、线程和信号隔离、请求缓存、请求合并以及服务监控等强大功能。

在Hystrix底层中大量使用了RxJava(观察者-订阅者模式)

Spring Cloud Feign

  Spring Feign集成了Ribbon和Hystrix,它还提供了一种声明式的web服务客户端定义式

Spring Cloud Zuul

  后续补上.....

spring cloud认识的更多相关文章

  1. spring/spring boot/spring cloud开发总结

    背景        针对RPC远程调用,都在使用dubbo.dubbox等,我们也是如此.由于社区暂停维护.应对未来发展,我们准备尝试新技术(或许这时候也不算什么新技术了吧),选择使用了spring ...

  2. 转 Netflix OSS、Spring Cloud还是Kubernetes? 都要吧!

    Netflix OSS.Spring Cloud还是Kubernetes? 都要吧! http://www.infoq.com/cn/articles/netflix-oss-spring-cloud ...

  3. spring cloud 学习研究- spring-cloud-microservice-example

    spring cloud + docker 微服务架构 http://www.open-open.com/lib/view/open1437363835818.html 实例项目 https://gi ...

  4. Spring Cloud集成相关优质项目推荐

    Spring Cloud Config 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储.Git以及Subversion. Spring Cloud Bus 事件.消 ...

  5. spring boot分布式技术,spring cloud,负载均衡,配置管理器

    spring boot分布式的实现,使用spring cloud技术. 下边是我理解的spring cloud的核心技术: 1.配置服务器 2.注册发现服务器eureka(spring boot默认使 ...

  6. Spring Cloud 配置服务

    Spring Cloud 配置服务 1. 配置服务简介 产生背景: 传统开发中,我们通常是将系统的业务无关配置(数据库,缓存服务器)在properties中配置,在这个文件中不会经常改变,但随着系统规 ...

  7. Microservices Reference Architecture - with Spring Boot, Spring Cloud and Netflix OSS--转

    原文地址:https://www.linkedin.com/pulse/microservices-reference-architecture-spring-boot-cloud-anil-alle ...

  8. 综合使用spring cloud技术实现微服务应用

    在之前的章节,我们已经实现了配置服务器.注册服务器.微服务服务端,实现了服务注册与发现.这一章将实现微服务的客户端,以及联调.实现整个spring cloud框架核心应用. 本文属于<7天学会s ...

  9. Spring cloud实现服务注册及发现

    服务注册与发现对于微服务系统来说非常重要.有了服务发现与注册,你就不需要整天改服务调用的配置文件了,你只需要使用服务的标识符,就可以访问到服务. 本文属于<7天学会spring cloud系列& ...

  10. 使用spring cloud实现分布式配置管理

    <7天学会spring cloud系列>之创建配置管理服务器及实现分布式配置管理应用. 本文涉及到的项目: 开源项目:http://git.oschina.net/zhou666/spri ...

随机推荐

  1. jQuery源码分析-03扩展工具函数jQuery.extend

    // 扩展工具函数 jQuery.extend({ // http://www.w3school.com.cn/jquery/core_noconflict.asp // 释放$的 jQuery 控制 ...

  2. 表达式求值(二叉树方法/C++语言描述)(一)

    使用二叉树对算数表达式(以下简称为表达式)进行求值,实质上是将表达式转换为二叉树,对其进行后序遍历,得到后缀表达式的同时可以求得表达式的值.转换和求值的过程也需要借助数据结构栈的帮助. 二叉树数据结构 ...

  3. 2.跑nodejs文件

    1.安装nodejs的环境,这里不介绍了. app.js 'use strict'; //process.argv 接受变量 var command = process.argv[2]; var a ...

  4. JavaScript数组遍历(迭代)方法 8种

    最近工作中经常涉及到数据的处理,数组尤其常见,经常需要对其进行遍历.转换操作,网上的文章零零散散,不得已自己又找出红宝书来翻出来看,顺便记一笔,便于以后查询. 数组常用的方法 ECMAScript5为 ...

  5. vue-router的使用

    关于vue-router的基本使用方法    首先,需要下载vue-router npm install vue-router --save vue-router在html或组件中的展现 ``` &l ...

  6. C#上位机串口控制12864显示

    实现的效果 上面是用Proteus仿真的,,对了如果自己想用proteus仿真需要安装下面这个软件 再看一下实物显示效果 先做上位机部分........... 为了程序一启动就把电脑上能用的串口号显示 ...

  7. 数据结构-->栈

    首先,栈是什么? 在代码当中,栈主要是一种实现特殊功能的一种数据结构,而不是像数组.集合之类的数据存储工具.它最大的特点就是后进先出. 那么后进先出是什么? 假设有一个数组,我们向里面添加一个数据,再 ...

  8. 填涂颜色 洛谷 p1162

    题目描述 由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要求把闭合圈内的所有空间都填写成2.例如:6X6的方阵(n=6),涂色前和涂色后的方阵如下: 0 ...

  9. iOS蓝牙BLE开发

    蓝牙是一个标准的无线通讯协议,具有设备成本低.传输距离近和功耗低等特点,被广泛的应用在多种场合.蓝牙一般分为传统蓝牙和BLE两种模式:传统蓝牙可以传输音频等较大数据量,距离近.功耗相对大:而BLE则用 ...

  10. Linux学习总结(九)—— CentOS常用软件安装:中文输入法、Chrome

    中文输入法 切换到root用户,运行以下命令: yum install "@Chinese Support" 按照提示,一路Yes等待安装完成.安装完成后点击左上角System - ...