Spring Cloud:第一章:基本介绍

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
云原生 API 网关,700元额度,多规格可选
简介: Spring Cloud:第一章:基本介绍

Spring Cloud中文网

Spring Cloud 是什么?

Spring Cloud 是一系列框架的有序集合,将市面上开发得比较好的模块集成进去,进行封装,从而减少了各模块的开发成本。

Spring Cloud 优缺点

基于注解,没有配置文件,解耦的

Spring Cloud 和 Dubbo 对比

Dubbo 只是实现了服务治理,而 Spring Cloud 实现了微服务架构的方方面面,服务治理只是其中的一个方面。Spring Cloud 基于 Spring Boot,基于http协议,Dubbo基于RPC协议。

SpringCloud分布式开发

通过spring cloud Eureka实现高可用的服务注册中心以及实现微服务的注册与发现;通过spring cloud ribbon或feign实现服务间负载均衡的接口调用,同时,为了分布式系统更为健壮,以避免服务调用使用spring cloud hystrix来进行包装,实现线程隔离并加入熔断机制,以避免在微服务架构中因个别服务出现异常而引起级联故障蔓延。

五大常用spring cloud子项目

服务发现——Netflix Eureka

客服端负载均衡——Netflix Ribbon

断路器——Netflix Hystrix

服务网关——Netflix Zuul

分布式配置——Spring Cloud Config

服务发现——Netflix Eureka

 服务注册中心 :eureka-server

   作用:服务注册中心提供服务注册功能

 服务提供方:eureka-client

   作用:注册服务到服务注册中心

客服端负载均衡——Netflix Ribbon

在Spring Cloud中,有两种服务调用方式,一种是Ribbon+RestTemplate,另一种是Feign。

当Ribbon与Eureka配合使用时,Ribbon可自动从Eureka Server获取服务提供者地址列表,并基于负载均衡算法,请求其中一个服务提供者实例。

断路器——Netflix Hystrix

在分布式架构中,当某个服务单元发生故障之后,通过断路由器的故障监控(类似熔断保险丝),向调用方返回一个错误响应,而不是长时间的等待。这样就不会使得线程因调用故障服务被长时间占用不释放,避免了故障在分布式系统中的蔓延。

Spring Cloud Hystrix针对上述问题实现了断路由器、线程隔离等一系列服务保护功能。它是基于Netflix Hystrix实现,该框架的目标在于通过控制那些访问远程系统、服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

Hystrix具备服务降级、服务熔断、线程和信号隔离、请求缓存、请求合并以及服务监控等强大功能。

服务网关——Netflix Zuul

我们在服务端实现的微服务接口,往往都会有一定的权限校验机制,比如对用户登录状态的校验等;同时为了防止客户端在发起的请求时被篡改等安全方面的考虑,还会增加一些签名校验的机制存在。在微服务架构中需要对每个模块都去修改,为了简便也需要一套机制能够很好的解决微服务架构中对于微服务接口访问时各前置校验的冗余问题。

为了解决上面的一系列的问题,api网关应运而生

api网关是一个更加智能的应用服务器,它的定义类似于面向对象设计模式中的Facade模式,它的存在就像是整个微服务架构系统的门面一样,所有的外部客户端访问都需要经过它来进行调度和过滤,它除了要实现请求路由,负载均衡,校验过滤等功能。

spring cloud zuul通过与Eureka进行整合,将自身的服务注册到Eureka上,同时从Eureka中获取所有其他微服务的实例信息。这样的设计,zuul默认将会通过服务名作为ContextPath的方式来创建路由映射,部分情况下,这样的默认设置已经可以实现大多数的路由需求。除了一些特殊的(比如兼容一些老的url)还需要做一些特别的配置。但是相比与之前的架构下的运维工作量,通过引入spring cloud zuul实现api网关后,已经能够大大减少了。

其次,对于冗余的签名校验,登录校验在微服务架构中的冗余问题。可以独立成一个单独的服务存在,只是他们被剥离和独立出来之后,并不是给各个微服务调用,而是在api网关服务商进行统一调用来对微服务接口做前置过滤,以实现微服务接口的拦截和校验。spring cloud zuul提供了一套过滤机制,它可以很好的支持过滤的任务。

分布式配置——Spring Cloud Config

config-server 配置服务端,服务管理配置信息

config-client 客户端,客户端调用server端暴露接口获取配置信息

相关文章
|
4月前
|
监控 负载均衡 Java
深入理解Spring Cloud中的服务网关
深入理解Spring Cloud中的服务网关
|
4月前
|
Java 开发工具 git
实现基于Spring Cloud的配置中心
实现基于Spring Cloud的配置中心
|
4月前
|
设计模式 监控 Java
解析Spring Cloud中的断路器模式原理
解析Spring Cloud中的断路器模式原理
|
4月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
Spring Cloud Alibaba 发布了 Scheduling 任务调度模块 [#3732]提供了一套开源、轻量级、高可用的定时任务解决方案,帮助您快速开发微服务体系下的分布式定时任务。
14978 29
|
4月前
|
负载均衡 Java Spring
Spring cloud gateway 如何在路由时进行负载均衡
Spring cloud gateway 如何在路由时进行负载均衡
511 15
|
4月前
|
Java Spring
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
115 3
|
4月前
|
消息中间件 Java 开发者
Spring Cloud微服务框架:构建高可用、分布式系统的现代架构
Spring Cloud是一个开源的微服务框架,旨在帮助开发者快速构建在分布式系统环境中运行的服务。它提供了一系列工具,用于在分布式系统中配置、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态等领域的支持。
191 5
|
4月前
|
Java API 开发工具
Spring Boot与Spring Cloud Config的集成
Spring Boot与Spring Cloud Config的集成
|
4月前
|
存储 安全 Java
实现基于Spring Cloud的分布式配置管理
实现基于Spring Cloud的分布式配置管理
下一篇
无影云桌面