Osheep

时光不回头,当下最重要。

Spring Cloud 核心综合实战

Spring Cloud核心框架概述

服务发现——Netflix Eureka

《Spring Cloud 核心综合实战》

Eureka

一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。Netflix在其生产环境中使用的是另外的客户端,它提供基于流量、资源利用率以及出错状态的加权负载均衡。

客服端负载均衡——Netflix Ribbon

《Spring Cloud 核心综合实战》

Ribbon

Ribbon,主要提供客户侧的软件负载均衡算法。
Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等。Ribbon内置可插拔、可定制的负载均衡组件。

断路器——Netflix Hystrix

《Spring Cloud 核心综合实战》

image.png

断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU 周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决。如果问题似乎已经得到纠正​​,应用程序可以尝试调用操作。

服务网关——Netflix Zuul

《Spring Cloud 核心综合实战》

zuul

类似nginx,反向代理的功能,不过netflix自己增加了一些配合其他组件的特性。

监控中心——Spring Boot Admin

《Spring Cloud 核心综合实战》

Spring Boot Admin

Spring Boot Admin 用于监控基于 Spring Boot 的应用。

核心实战架构

《Spring Cloud 核心综合实战》

实战架构图

架构详解

监控

利用Spring Boot Admin 来监控各个独立Service的运行状态;利用Hystrix Dashboard来实时查看接口的运行状态和调用频率等。

负载均衡

将服务保留的rest进行代理和网关控制,除了平常经常使用的node.js、nginx外,Spring Cloud系列的zuul和rebbion,可以帮我们进行正常的网关管控和负载均衡。

服务注册与调用

基于Eureka来实现的服务注册与调用,在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。

熔断机智

因为采取了服务的分布,为了避免服务之间的调用“雪蹦”,我采用了Hystrix的作为熔断器,避免了服务之间的“雪蹦”。

项目源码

github:https://github.com/wxiaoqi/ace-security
gitchina:http://git.oschina.net/geek_qi/ace-security

参考文献:

1、SpringCloud分布式开发五大神兽

点赞