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. iOS上机题(附个人见解)

    ##机试题目如下 用命令行创建一个以CocoaPods管理的项目[Test-你的姓名拼音],新建3个ViewController,完成以下题目 将下面的问题在一个UITabView里面列出所有问题,单 ...

  2. 67. Add Binary【LeetCode】

    67. Add Binary Given two binary strings, return their sum (also a binary string). For example,a = &q ...

  3. Spring Boot中使用 Spring Security 构建权限系统

    Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置的Bean,为应用系统提供声明式的安全 ...

  4. oracle 内连接,外连接

    --内连接  inner join  ...  on  --左外连接 left join ... on  --右外连接  right join ... on 列: select * from stud ...

  5. master log 与relay log的关系

    --master log 与relay log的关系 -------------------------------2014/06/09 Just to clarify, there are thre ...

  6. ExecutorService的submit方法使用

    在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动.调度.管理线程的一大堆API了.在Java5以后,通过Executor来启动线程比用Thread的start()更好.在新特征中 ...

  7. 原创:使用脚本获取本机IP地址

    接来下又到了老葵花哥哥开课时间了 今天讲的有些简单 可以是涂鸦之做 也可以是无聊的发呆的杰作 我想取IP地址在大家生活中很常用 今天就给大家介绍我的六种使用脚本取IP地址的方法 很多人想问我 为什么是 ...

  8. Python 使用一等函数实现设计模式

    案例分析:重构"策略"模式 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Helvetica } 如果合理利用作为一等对 ...

  9. 运维之Linux基础(二)

    运维之Linux基础(二) 1. file 命令基期用法 2. 文件系统 Linux的文件系统结构是树状结构,所有的文件都在/root跟目录下 /boot:系统启动相关的文件, 如:内核.initrd ...

  10. [js高手之路]原型对象(prototype)与原型链相关属性与方法详解

    一,instanceof: instanceof检测左侧的__proto__原型链上,是否存在右侧的prototype原型. 我在之前的两篇文章 [js高手之路]构造函数的基本特性与优缺点 [js高手 ...