Spring cloud 微服务实现流程

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,均可以用Spring Boot的开发风格作到一键启动和部署。Spring并无重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,经过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包
如下为Spring Cloud的核心功能:git

  • 分布式/版本化配置 (spring cloud config)
  • 服务注册和发现(Eureka)
  • 路由服务和服务之间的调用(ribbon + resttemplate, feign)
  • 负载均衡(zuul,ribbon)
  • 断路器(Hystrix)
  • 分布式消息传递(Spring Cloud Stream)web

    这里写图片描述

    经过这张图,咱们来了解一下各组件配置使用运行流程:spring

一、请求统一经过API网关(Zuul)来访问内部服务.
二、网关接收到请求后,从注册中心(Eureka)获取可用服务
三、由Ribbon进行均衡负载后,分发到后端具体实例
四、微服务之间经过Feign进行通讯处理业务
五、Hystrix负责处理服务超时熔断
六、Turbine监控服务间的调用和熔断相关指标数据库

Spring Cloud体系介绍
上图只是Spring Cloud体系的一部分,Spring Cloud共集成了19个子项目,里面都包含一个或者多个第三方的组件或者框架!后端

Spring Cloud 工具框架网络

一、Spring Cloud Config 配置中心,利用git集中管理程序的配置。
二、Spring Cloud Netflix 集成众多Netflix的开源软件
三、Spring Cloud Bus 消息总线,利用分布式消息将服务和服务实例链接在一块儿,用于在一个集群中传播状态的变化
四、Spring Cloud for Cloud Foundry 利用Pivotal Cloudfoundry集成你的应用程序
五、Spring Cloud Cloud Foundry Service Broker 为创建管理云托管服务的服务代理提供了一个起点。
六、Spring Cloud Cluster 基于Zookeeper, Redis, Hazelcast, Consul实现的领导选举和平民状态模式的抽象和实现。
七、Spring Cloud Consul 基于Hashicorp Consul实现的服务发现和配置管理。
八、Spring Cloud Security 在Zuul代理中为OAuth2 rest客户端和认证头转发提供负载均衡
九、Spring Cloud Sleuth SpringCloud应用的分布式追踪系统,和Zipkin,HTrace,ELK兼容。
十、Spring Cloud Data Flow 一个云本地程序和操做模型,组成数据微服务在一个结构化的平台上。
十一、Spring Cloud Stream 基于Redis,Rabbit,Kafka实现的消息微服务,简单声明模型用以在Spring Cloud应用中收发消息。
十二、Spring Cloud Stream App Starters 基于Spring Boot为外部系统提供spring的集成
1三、Spring Cloud Task 短生命周期的微服务,为SpringBooot应用简单声明添加功能和非功能特性。
1四、Spring Cloud Task App Starters
1五、Spring Cloud Zookeeper 服务发现和配置管理基于Apache Zookeeper。
1六、Spring Cloud for Amazon Web Services 快速和亚马逊网络服务集成。
1七、Spring Cloud Connectors 便于PaaS应用在各类平台上链接到后端像数据库和消息经纪服务。
1八、Spring Cloud Starters (项目已经终止而且在Angel.SR2后的版本和其余项目合并)
1九、Spring Cloud CLI 插件用Groovy快速的建立Spring Cloud组件应用。负载均衡