1、配置服务
Spring cloud 提供了Config Server ,它有再分布式系统开发中外部配置的功能,可以集中存储所有应用的配置文件。
Config Server支持在git或者在文件系统中放置配置文件。
/{application}/{profile}/[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
Spring Cloud 提供了注解@EnableConfigServer来启用配置服务。
2、服务发现
Spring Cloud 使用Nettfix OSS的Eureker 来实现服务发现,服务的主要目的是为了让每个服务之间可以互相通信。Eureka Server为微服务注册中心。
Spring Cloud 使用注解的方式提供了 Eurker 服务端(@EnableEurekaServer)和客户端(@EnableEurekaClient).
3、路由网关
路由网关的主要目的是为了让所有的微服务对外只有一个接口,我们只需要访问一个网关地址,即可由网关将我们的请求代理到不同的服务中.
Spring Cloud 是通过Zuul来实现的,支持自动路由映射到字Eureka Server上注册的服务,Spring Cloud 提供了注解@EnableZuulProxys来启用路由代理。
4、负载均衡
Spring Cloud 提供了ribbonh和Feign作为客户端的负载均衡,在Spring Cloud下,使用Ribbon直接注入一个RestTemplate对象即可,此RestTemplate已做好负载均衡的配置;而使用Feign只需定义个注解,有@FeignClinet注解的接口,然后使用@RequsetMapping注解在方法上映射远程的Rest服务,此方法也是做好负载均衡配置的。
5、断路器
断路器,主要是解决当某个方法调用失败的时候,调用后备方法来替代失败的方法,已达到容错、阻止级联错误等功能。
Spring Cloud 使用@EnableCircuitBreaker来启用断路器支持,使用@HystrixCommand的fallbackMethod来指定后备方法。
Spring Cloud 还给我们提供了一个控制台来监控断路器的运行情况,通过@EnableHystrixDashboard注解开启。