spring-cloud简介和核心组件简介

概述

本文主要介绍 spring cloud 以及其相关的核心组件简介,对 spring cloud 有一个比较简明清晰的认识。

组件简介

spring cloud Eureka

Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件中的 一 部分,它基于 Netflix Eureka 做了二次封装, 主要负责完成微服务架构中的服务治理功能。 Spring Cloud 通过为 Eureka 增加了 Spring Boot 风格的自动化配置,我们只需通过简单引入依赖和注解配置就能让 Spring Boot 构建的微服务应用轻松地与 Eureka 服务治理体系进行整合.

spring cloud Ribbon

Spring Cloud Ribbon 是 一 个基于 HTTP 和 TCP 的客户端负载均衡工具,它基于 Netflix Robbon 实现。 通过 Spring Cloud 的封装,可以让我们轻松地将面向服务的 REST 模板请求自动转换成客户端负载均衡的服务调用,ribbon 主要用来做客户端负载均衡,什么是客户端负载均衡呢,我们知道 eureka 做的是服务端的负载均衡,而 ribbon 就是同样的维护了一份服务实例,这个实例来源于服务端,但是由客户端自己维护,也是通过心跳检测来剔除故障的服务端节点以保证清单中都是可以正常访问的服务端节点。

ribbon 的负载均衡策略有:Random Rule、Round Rule、Retry Rule、Weighted Response TimeRule、ClientConfigEnabledRoundRobinRule,其中 Weighted Response TimeRule 的算法为生成权重区间,区间宽度大占比大,访问的概率越高,而真实 REQUEST 访问时会先生成一个最小区间到最大区间的随机值,当然区间宽度大的被访问的概率就响应的大,这个区间计算是根据服务实例的访问平均时间等计算的。ClientConfigEnabledRoundRobinRule 通过遍历负载均衡器中维护的所有实例,会过滤掉故障实例,并找出发送请求数最小的一个,该策略的特性是选出最空闲的实例.

spring cloud Hystrix

spring cloud 断路器
在微服务架构中, 我们将系统拆分成了很多服务单元, 各单元的应用间通过服务注册与订阅的方式互相依赖。 由于每个单元都在不同的进程中运行, 依赖通过远程调用的方式执行, 这样就有可能因为网络原因或是依赖服务自身间题出现调用故障或延迟, 而这些问题会直接导致调用方的对外服务也出现延迟, 若此时调用方的请求不断增加,最后就会因等待出现故障的依赖方响应形成任务积压,最终导致自身服务的瘫痪。

就好像电网中的保险丝,在线路电流过载的情况下会自动熔断,虽然像保险丝但是断路器还有比保险丝更强大的功能,除了过载,Hystrix 还具备 Hystrix 具备服务降级、 服务熔断、 线程和信号隔离、 请求缓存、 请求合并以及服务监控等强大功能,对服务延迟和故障提供了强大的容错能力。

spring cloud Feign

它基于 NetflixFeign 实现,整合了 Spring Cloud 伈 bbon 与 Spring Cloud Hystrix, 除了提供这两者的强大功能之外,它还提供了 一 种声明式的 Web 服务客户端定义方式,Spring Cloud Feign 具备可插拔的注解支持,包括 Feign 注解和 JAX-RS 注解,同时它在 Netflix Feign 的基础上扩展了对 Spring MVC 的注解支待。

spring cloud Zuul

维护中….

spring cloud Config

spring cloud Bus

spring cloud Stream

spring cloud Sleuth

一盏灯, 一片昏黄; 一简书, 一杯淡茶。 守着那一份淡定, 品读属于自己的寂寞。 保持淡定, 才能欣赏到最美丽的风景! 保持淡定, 人生从此不再寂寞。



   Reprint policy


《spring-cloud简介和核心组件简介》 by jackromer is licensed under a Creative Commons Attribution 4.0 International License
  目录