【SpringCloud】springCloud总体结构和技术熟悉

springCloud组件图
https://src.windmt.com/img/006tNc79ly1fqc4dcx75gj31ab0o775w.jpg
springCloud结构图

服务注册与发现

服务注册中心:Eureka、(zookeeper等)
负责管理服务的注册和发现。

服务调用

调用端断路器:Hystrix
当某个服务出问题时,设置快速失败机制,再多次失败后再次调用直接返回失败,避免出现雪崩现象(指由于前面的服务调用失败导致后面的服务调用全部失败导致调用端 持续等待影响了整体服务;服务雪崩效应是一种因 “服务提供者” 的不可用导致 “服务消费者” 的不可用,并将不可用逐渐放大的过程。)。

调用端负载均衡:Ribbon
对有多个实例的同一服务(集群),当调用服务时,进行负载均衡来让各个实例合理地分配到请求。

调用端代码封装与抽象:Feign
Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。Feign默认集成了Ribbon与Hystrix,具有熔断的能力,与Eureka结合,默认实现了负载均衡的效果。

服务路由和过滤

服务路由和过滤:Zuul
1可以过滤cookie和httpHeader
2路径映射
3可实现动态路由,根据请求路径动态映射到不同服务,如下图
Up9r7V.png

监控数据收集

Hystrix Dashboard 和 Turbine
对服务熔断情况进行监控。
只使用 Hystrix Dashboard 的话,你只能看到单个应用内的服务信息。
Turbine能让我们汇总系统内多个服务的数据并显示到 Hystrix Dashboard 上。

Spring Cloud Sleuth 和 Zipkin
通过 Sleuth 可以很清楚的了解到一个服务请求经过了哪些服务,每个服务处理花费了多长时间。从而让我们可以很方便的理清各微服务间的调用关系。

Zipkin 是 Twitter 的一个开源项目,允许开发者收集 Twitter 各个服务上的监控数据,并提供查询接口

分布式链路跟踪需要 Sleuth+Zipkin 结合来实现

其它工具

Spring Cloud Config
分布式系统的配置管理方案。

Spring Cloud Bus
用 AMQP 消息代理作为通道,通过分布式的启动器对 Spring Boot 应用进行扩展,也可以用来建立一个或多个应用之间的通信频道。可用于对分布式配置变化进行广播,不用对每个服务端都进行refresh操作就能更新所有服务的配置。


原文:https://windmt.com/2018/04/14/spring-cloud-0-microservices/