一、概述架构
1.1 Spring Cloud是一个基于SpringBoot实现的微服务架构开发工具;app
Spring Cloud为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话、集群状态管理等操做提供了一种简单的开发方式;负载均衡
1.2 Spring Cloud包含了多个子项目:分布式
Spring Cloud Config:微服务
Spring Cloud Netflix:工具
Spring Cloud Bus:开发工具
Spring Cloud Cluster:ui
二、快速入门spa
1.1 配置服务代理
SpringCloud提供了Config Server,提供在分布式系统中外部配置的功能;
SpringCloud提供了@EnableConfigServer来启用配置服务;
1.2 服务发现
SpringCloud经过Netflix OSS的Eureka来实现服务发现;
服务发现的目的:让每一个服务之间相互通讯;
Eureka Server为微服务注册中心;
SpringCloud使用@EnableEurekaServer做为Eureka服务端
@EnableEurekaClient做为Eureka客户端
1.3 路由网关
路由网关的目的:让全部的微服务对外只有一个接口,只须要访问一个网关地址,由网关将请求代理到不一样的服务中;
SpringCloud经过Zuul实现路由网关,支持自动路由映射到在Eureka Server上注册的服务;
SpringCloud经过@EnableZuulProxy来启用路由代理
1.4 负载均衡
SpringCloud提供了Ribbon、Feign做为客户端的负载均衡
使用Ribbon时,直接注入一个RestTemplate对象(已作好负载均衡的配置)便可
使用Feign时,只需定义个注解,有@FeignClient注解的接口,而后使用@RequestMapping在方法上映射远程的REST服务,此方法也是作好负载均衡的
1.5 断路器
断路器:为了解决当某个方法调用失败时,调用后备方法来替代失败的方法,以达到容错、阻止级联错误等功能;
SpringCloud使用@EnableCircuitBreaker来启用断路器支持
使用@HystrixCommand的fallbackMethod来指定后备方法
SpringCloud提供了@EnableHystrixDashboard能够在控制台监控断路器的运行状况