美文网首页
SpringCloud 2020 学习笔记-序言

SpringCloud 2020 学习笔记-序言

作者: Martain | 来源:发表于2020-04-22 22:20 被阅读0次

    SpringCloud 2020 学习笔记-序言

    一、前言

    ​ 学习、工作使用java已经有一段时间了,前段时间粗略的学习了一下Dubbo框架,作为第一次使用微服务框架的小白的我来说,在它的服务治理服务调用等功能上深受感慨,也是感受到了微服务单体应用之间的差异,喜欢其功能模块的拆分,降低了整体系统的耦合性,这也许是大家说的低耦合,高内聚的思想吧。第一次接触便让我迫不及待的想去了解它,掌握它,所以也是决定再去系统的学习下springcloud的体系。为了提高学习效果、加深学习印象,我打算在学习过程中写系列笔记的博客,以此来辅助我的学习,也分享我的过程,希望能帮助到一些和一样的小白,同时也希望看到我文章的大佬们能指出我的不足,非常感谢 ()!

    二、体系组成

    ​ 虽然才开始准备写学习笔记,其实网上学习springcloud的相关知识也有段时间了,但是这是粗略的了解了下比较浅层的知识,大致了解了下这个框架的有那些组成以及那些组件的更新换代,因为在之前的版本springcloud的组件有许多组件也停更进维了,对于我这种刚学的小白来说,需要了解它的过去,也要了解其的现在,因为很多组件都是承上启后,思想理念都是一脉相承的,这里我也是抱着学习的态度多去了解了下。

    springcloud发展也有很长一段时间了,随着它的快速发展,springcloud的组成也发生了很大的变化,我也是基于网上的资料,以2020年为分界线,整理了下旧版和新版的springcloud的组成

    2.1 前期组成

    springCloud旧版

    我们可以看到,旧版的springcloud的框架主要是由EurekaRIbbonFeignHystrixSpringCloud ConfigSpringBoot组成。主要的模块划分为服务注册与发现服务负载与调用服务熔断与降级服务网关服务分布式配置服务开发,可以看到还是涵盖的比较全的。

    2.2 最新组成

    2020年新的组成

    ​ 经过springcloud的快速发展,springcloud的组件也是百花齐放,各个模块都有许多可替换的组件,可以根据实际的业务需求来做技术选型。

    三、注册中心�

    ​ springcloud是一个非常优秀的微服务框架,要管理众多的服务,就需要对这些服务进行治理,也就是我们说的服务治理,服务治理的作用就是在传统的rpc远程调用框架中,管理每个服务与每个服务之间的依赖关系,可以实现服务调用、负载均衡、服务容错、以及服务的注册与发现。
    ​ 如果微服务之间存在调用依赖,就需要得到目标服务的服务地址,也就是微服务治理的服务发现。要完成服务发现,就需要将服务信息存储到某个载体,载体本身即是微服务治理的服务注册中心,而存储到载体的动作即是服务注册
    ​ springcloud支持的注册中心有EurekaZookeeperConsulNacos

    组件名称 所属公司 组件简介
    Eureka Netflix springcloud最早的注册中心,目前已经进入停更进维
    Zookeeper Apache zookeeper是一个分布式协调工具,可以实现注册中心功能
    Consul Hashicorp Consul 简化了分布式环境中的服务的注册和发现流程,通过 HTTP 或者 DNS 接口发现。支持外部 SaaS 提供者等。
    Nacos Alibaba Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

    四、负载均衡

    负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。

    ​ 目前springcloud支持两个负载均衡组件:RibbonLoadBalance

    组件名称 所属公司 组件简介
    Ribbon Netflix Ribbon是一个基于HTTP和TCP的客户端负载均衡工具
    LoadBalancer - -

    五、服务调用

    ​ 微服务将传统的单体应用拆分成了多个微服务,也考虑了服务之间如何相互调用,旧版的springcloud使用的Feign来支持rpc调用,现在Feign已经停更进维了,由OpenFeign来提供服务调用

    组件名称 所属公司 组件简介
    Feign - -
    OpenFeign SpringCloud 是一个声明式的webService客户端,定义接口添加注解即可使用

    六、服务保护

    ​ 对于目前互联网常见的高并发的场景,虽然我们可以提供集群的方式来对服务请求进行容错,不过也难免会遇到不可预见的故障,比如宕机等情况,作为一个完善的微服务框架来说,springcloud考虑了这些情况,可选用Hystrixseilience4jsentinel来对服务进行保护,提供服务降级服务熔断服务限流的功能

    组件名称 所属公司 组件简介
    Hystrix Netflix 分布式系统的延迟和容错方案,已经停更进维
    Resilience4j - Resilience4j是一款轻量级,易于使用的容错库,其灵感来自于Netflix Hystrix,但是专为Java8和函数式编程而设计,是官方推荐的Hystrix的替代方案。
    Sentinel Alibaba Alibaba出品的面向分布式服务架构的流量控制组件

    七、服务网关

    ​ 在微服务众多的服务的治理过程中,服务网关的作用在微服务框架中可以提供统一入口鉴权校验动态路由降低耦合度的功能

    组件名称 所属公司 组件简介
    zuul Netflix 停更进维
    zuul2 Netflix zuul核心开发人员离职了3人,神仙打架,出路不明
    gateway springcloud springcloud自研的一套非阻塞的网络异步网关

    八、服务配置

    ​ Spring Cloud官方自身提供了Spring Cloud Config分布式配置中心,由它来提供集中化的外部配置支持,它分为客户端和服务端两个部分。其中服务端称作配置中心,是一个独立的微服务应用,用来连接仓库(如Git、Svn)并未客户端提供获取配置的接口;而客户端是各微服务应用,通过指定配置中心地址从远端获取配置内容,启动时加载配置信息到应用上下文中。因Spring Cloud Config实现的配置中心默认采用了Git来存储配置信息,所以版本控制管理也是基于Git仓库本身的特性来支持的 。目前springcloud可使用springcloud configNacos

    组件名称 所属公司 组件简介
    Config springcloud Config为分布式系统中的外部化配置提供服务器端和客户端支持。
    Nacos Alibaba 易于使用的动态服务发现,配置和服务管理平台,用于构建云本机应用程序。

    九、服务总线

    ​ Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。本文要讲述的是用Spring Cloud Bus实现通知微服务架构的配置文件的更改。

    组件名称 所属公司 组件简介
    Bus springcloud -
    Nacos Alibaba -

    十、springcloud 和springcloud alibaba

    ​ Spring Cloud 是基于 Spring Boot 设计的一套微服务规范,并增强了应用上下文。Spring Cloud Alibaba 采用阿里中间件作为基础,实现了 Spring Cloud 的微服务规范。

    2018-12-12 Netflix 宣布停止开发Spring Cloud的相关服务:Ribbon、Feign、Eureka、Hystrix,继续使用风险自负

    这篇文章是基于我目前对springcloud的认识所写的,文章中肯定还有很多不好的地方以及错误的地方,也请各位如果看到能给予指正。

    相关文章

      网友评论

          本文标题:SpringCloud 2020 学习笔记-序言

          本文链接:https://www.haomeiwen.com/subject/rfigihtx.html