Spring Cloud 技术学习大纲

微服务技术总结来说 主要是围绕 三大功能,两大特性 铺展开来
在这里插入图片描述

三大功能

指微服务核心组件的功能维度,由浅入深层次递进;

  • 服务间通信,包括服务治理、负载均衡、服务间调用;
  • 服务容错和异常排查,包括流量整形、降级熔断、调用链追踪;
  • 分布式能力建设,包括微服务网关、分布式事务、消息驱动、分布式配置中心。

微服务组件由浅入深的学习路线

先 服务间通信,再 服务容错异常排查,最后 分布式建设。
从功能维度来讲,服务间通信是最基础的功能特性,当项目构建起基础的通信能力之后,接下来就要考虑如何构建服务容错能力,提高服务调用的稳定性了。在这之后,就可以从全局的角度构建一些分布式支持特性。

两大特性

在学习使用每个微服务组件的时候,还需要了解各个微服务组件是如何保证从高可用性,以及可扩展性的运用。
高可用性是系统设计的第一要素,它就像人的健康一样。健康好比数字 1,能赚多少钱都是后面的 0 来决定,没有了健康一切归零。系统设计也一样,系统功能再厉害,都要构建在可用性之上才能发挥作用。
可扩展性,是考验对框架原理的理解程度。了解组件的底层原理,学会如何基于开源项目的扩展点实现一些定制功能,才能真正用好微服务技术。

微服务架构天然的优势

快速迭代 + 快速回滚

细粒度的可独立部署的小型服务,再加上敏捷开发模式的加持,可以对产品功能实现快速迭代。如果迭代过程中发现线上 Bug,也可以在最短的时间内做线上回滚,并且不会影响到其他应用的正常发布。

资源利用大大提高

可以将硬件等资源定向分配给需要用到资源的微服务,实现差异化的资源利用。在微服务体系中,也可以统计每个服务集群的线上压力水位,应用弹性计算技术在各个服务之间调配计算资源。

大幅降低协作成本

代码库、数据库、编译打包从“共享”变为了“独享”,微服务团队也保持了小规模特战队的模式,进一步降低了组内组外的沟通协作成本。

高可用

前面也说了高可用是系统设计的第一目标!!相比前牵一发而动全身的单体应用来说,微服务架构提供了个性化的保护措施,比如弹性机房水位调拨、流量整形、熔断降级。

  1. 弹性机房水位调拨
    弹性机房实现了计算资源的自动分配,这种弹性伸缩能力必须建立在微服务化的基础上。它可以根据每个微服务的重要程度(核心服务 vs 边缘业务)以及当前承接的用户访问压力,动态地将计算资源(如虚机、云存储)分配给需要资源的服务。

  2. 流量整形
    根据每个微服务承载能力的不同,控制外部流量抵达服务的速率。“限流”其实只是流量整形的一个场景,大型微服务的流量整形有很多种方式,比如匀速排队、流量预热、削峰填谷等等。

  3. 熔断降级
    在流量高峰的时候,可以对边缘服务做人工降级,把计算资源腾挪给核心应用,降低核心服务的访问压力。除了人工降级以外,还可以为每个服务设置自动降级和熔断指标,比如当调用失败率达到某个阈值之后,开启自动降级措施,降低对下游业务的访问压力。

只有把应用微服务化之后,才能更好地使用上面这些技术手段对业务系统做精细力度的保护,从而实现高可用的目标。

Spring Cloud 与 Spring Boot

在这里插入图片描述
在上面这幅图中,可以看到有几个 Spring Boot Apps 的应用集群,这就是经过拆分后的微服务。Spring Cloud 和 Spring Boot 达成了一种默契的配合:Spring Boot 主内,Spring Cloud 主外
Spring Boot:通过自动装配和各种开箱即用的特性,搞定了数据层访问、RESTful 接口、日志组件、内置容器等等基础功能,让开发人员不费吹灰之力就可以搭建起一个应用;
Spring Cloud:在应用集群之外提供了各种分布式系统的支持特性,轻松实现负载均衡、熔断降级、配置管理等诸多微服务领域的功能。两者合二为一完整构建了微服务领域的全家桶解决方案。

Spring Cloud 全家桶

前景了解

在 Spring Cloud 历史上举足轻重的两家公司 Netflix 和 Alibaba。这两家公司分别为开源社区贡献了 Spring Cloud Netflix 组件库和 Spring Cloud Alibaba 组件库。
Netflix 是一家美国的流媒体巨头( Netflix 这个名字如果不知道,《纸牌屋》一定看过或者听过,它就是由这家我们俗称“奈飞”的公司出品的),它靠着自己强大的技术实力,开发沉淀了一系列优秀的组件。如 Eureka 服务注册中心、Ribbon 负载均衡器、Hystrix 服务容错组件等。Netflix 将这些组件贡献给了 Spring 开源社区,构成了 Netflix 组件库。可以这么说,在 Spring Cloud 的早期阶段,是 Netflix 打下了的半壁江山。
Netflix 和 Spring Cloud 在后来矛盾就逐渐发生了。先是 Eureka 2.0 开源计划的搁浅,而后 Netflix 宣布 Hystrix 进入维护状态,Eureka 和 Hystrix 这两款 Netflix 组件库的明星项目停止了新功能的研发,Spring 社区不得不开始思考替代方案,在后续的新版本中走向了“去 Netflix 化”。以至于 Netflix 的网关组件 Zuul 2.0 历经几次跳票千呼万唤始出来后,Spring Cloud 社区已经不打算集成 Zuul 2.0,而是掏出了自己的 Gateway 网关。在最新版本的 Spring Cloud 中,Netflix 的踪迹已经逐渐消散,只有 Eureka 组件形单影只待在 Netflix 组件库中。
Spring Cloud Alibaba 是由 Alibaba 贡献的组件库,随着阿里在开源路线上的持续投入,近几年阿里系在开源领域的声音非常响亮,成为了 Spring Cloud 社区的一股新生代力量,逐渐取代了旧王 Netflix 的江湖地位。Spring Cloud Alibaba 组件秉承了“大而全”的特点,就像一个大中台应用一般包罗万象,在功能特性的丰富程度上做到了应有尽有。

Spring Cloud 全家桶组件库

在这里插入图片描述
上面表格中列出的是业务开发过程中的常用功能性组件,除了这些以外,Spring Cloud 官方还提供了很多可扩展组件,比如用来支持构建集群的 Spring Cloud Cluster、提供安全特性支持的 Spring Cloud Security、云原生的流处理数据管道 Spring Cloud Data Flow 等等,都可以在这个Spring Cloud 官方文档中找到完整的列表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值