🔎这里是【秒懂·云原生】,关注我学习云原生不迷路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️
👀专栏介绍
【秒懂·云原生】 目前主要更新微服务,一起学习一起进步。
👀本期介绍
主要介绍什么是Spring Cloud架构、Spring Cloud的组成及Spring Cloud的五大组件
文章目录
🍖Spring Cloud 架构
Spring社区推出Spring Cloud框架与其自身的理念演变密切相关。Spring是于2003年兴起的一个轻量级的Java开发框架,但是随着其不断地发展壮大,框架的代码规模越来越庞大,集成的项目越来越多,配置文件也变得越来越混乱,慢慢地背离最初的理念。如今,分布式系统和微服务架构等更多新的技术理念的陆续出现,催生了这样一种想法: Spring社区需要一款框架来改善以前的开发模式并适应微服务开发环境。SpringCloud也就此应运而生。
🍖Spring Cloud的组成
Spring Cloud由许多组件构成,技术体系如图。
🍖springcloud五大组件
🍕1、Eureka
eureka架构设计
🍕2、Ribbon
下图展示了Eureka使用Ribbon时的大致架构:
🍕3、Hystrix
hystrix被设计的目标是:
- 1.对通过第三方客户端库访问的依赖项(通常是通过网络)的延迟和故障进行保护和控制。
- 2.在复杂的分布式系统汇中阻止级联故障。
- 3.快速失败,快速恢复。
- 4.回退,尽可能优雅的降级。
- 5.启用近实时监控、警报和操作控制。
🍕4、Zuul
Zuul是Netflix开源的微服务网关,它可以和Eureka、Ribbon、Hystrix等组件配合使用。
Zuul的核心是一系列的过滤器,这些过滤器可以完成以下功能。
- 身份认证与安: 识别每个资源的验证要求,并拒绝那些与要求不符的请求。
- 审查与监控: 在边缘位置追踪有意义的数据和统计结果,从而带来精确的生产视图。
- 动态路由: 动态地将请求路由到不同的后端集群。
- 压力测试: 逐渐增加指向集群的流量,以了解性能。
- 负载分配: 为每一种负载类型分配对应容量,并弃用超岀限定值的请求。
- 静态响应处理: 在边缘位置直接建立部分响应,从而避免其转发到内部集群。
- 多区域弹性: 跨越AWS Region进行请求路由,旨在实现ELB ( Elastic Load Balancing) 使用的多样化,以及让系统的边缘更贴近系统的使用者。
Spring Cloud对Zuul进行了整合与增强。目前,Zuul使用的默认HTTP客户端是Apache HTTPClient,也可以使用 RestClient 或者okhttp3.OkHttpClient。
🍕5、Config
Spring Cloud Config 为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环节提供了一个中心化的外部配置。
Spring Cloud Config 分为服务端和客户端两部分。
服务端 也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密 信息等访问接口。
客户端 则是通过指定的配置中心来管理应用的资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载信息配置服务器默认采用 git 来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过 git 客户端工具来方便的管理和访问配置内容。