Spring Cloud 核心综合实战

作者: 架构老A | 来源:发表于2017-06-06 12:52 被阅读923次

阿里云优惠神卷、最高优惠25%,值得拥有:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ryr8l9eb&utm_source=ryr8l9eb

Spring Cloud核心框架概述

服务发现——Netflix Eureka

Eureka

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

客服端负载均衡——Netflix Ribbon

Ribbon

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

断路器——Netflix Hystrix

image.png

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

服务网关——Netflix Zuul

zuul

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

监控中心——Spring Boot Admin

Spring Boot Admin

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


核心实战架构

实战架构图

架构详解

监控

利用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分布式开发五大神兽

相关文章

网友评论

    本文标题:Spring Cloud 核心综合实战

    本文链接:https://www.haomeiwen.com/subject/gafpfxtx.html