Springcloud概述及Nacos安装

学习目标

  • 背景

  • 系统架构的演变

  • Spring Cloud 概述

  • Spring Cloud Alibaba 概述

  • Nacos概述和安装

  • Nacos注册中心

  • Nacos配置中心

  • Nacos集群和持久化

1.背景

2008年以后,国内互联网行业飞速发展,我们对软件系统的需求已经不再是过去”能用就行”这种很low的档次了,像抢红包、双十一这样的活动不断逼迫我们去突破软件系统的性能上限,传统的IT企业”能用就行”的开发思想已经不能满足互联网高并发、大流量的性能要求。系统架构走向分布式已经是服务器开发领域解决该问题唯一的出路,然而分布式系统由于天生的复杂度,并不像开发单体应用一样把框架一堆就能搞定,因此各大互联网公司都在投入技术力量研发自己的基础设施。这里面比较有名的如阿里的开源项目dubbo, Netflix开发的一系列服务框架。在这种“百花齐放”、重复造轮子的状况下,必然要出现一种统一的标准来简化分布式系统的开发,Spring Cloud应运而生。

2.系统架构的演变

2.1. 单体架构

互联网早期,一般的网站应用流量较小,只需一个应用,将所有功能代码都部署在一起就可以,这样可以减少开发、部署和维护的成本。比如说一个电商系统,里面会包含很多用户管理,商品管理,订单管理,物流管理等等很多模块,我们会把它们做成一个web项目,然后部署到一台tomcat服务器上。

存在的问题:

  • 代码耦合:模块的边界模糊、依赖关系不清晰,整个项目非常复杂,每次修改代码都心惊胆战

  • 迭代困难:每次功能的变更或bug的修复都会导致重新部署整个应用,随着代码的增多,构建、测试和部署的

时间也会增加

  • 扩展受限:单体应用只能作为一个整体进行扩展,无法根据业务模块的需要进行伸缩

  • 技术债务:随着时间推移、需求变更和人员更迭,会逐渐形成应用程序的技术债务,并且“越积越多不坏不修”

2.2.分布式架构

分布式:需要按照功能点把系统拆分成独立的功能,单独为某一个节点添加服务器,需要系统之间配合才能完成整个业务逻辑

存在的问题:

  • 服务拆分粒度如何?

  • 服务集群地址如何维护?

  • 服务之间如何实现远程调用?

  • 服务健康状态如何感知?

2.3.微服务

微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发

  • 面向服务:微服务对外暴露业务接口

  • 自治:团队独立、技术独立、数据独立、部署独立

  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

3.SpringCloud概述

3.1.SpringCloud是什么?

Spring Cloud是一系列框架的有序集合如服务发现注册、配置中心、消息总线、负载均衡、熔断器、数据监控等。

Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出了套简单易懂、易部署和易维护的分布式系统开发工具包。

SpringCloud是一个相对比较新的微服务框架,2016年才推出1.0的release版本,虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, Spring Cloud提供了全套的分布式系统解决方案(微服务开发的”全家桶”)。

3.2.Spring Cloud 和 Spring Boot的关系

Spring boot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务。

Spring Cloud是一个基于SpringBoot实现的微服务开发方案;

Spring boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Springboot,属于依赖的关系。

4.Spring Cloud Alibaba概述

4.1.Netflix公司项目进入维护模式

有了spring cloud这个微服务的框架,为什么又要使用spring cloud alibaba这个框架了?最重要的原因在于spring cloud中的几乎所有的组件都使用Netflix公司的产品,然后在其基础上做了一层封装。然而Netflix的众多组件在2020年停止维护,所以急需其他的一些替代产品,也就是spring cloud alibaba,目前正处于蓬勃发展的态式,马老师左手双十一,右手阿里开源组件,不仅占据了程序员的购物车,还要攻占大家的开发工具。

4.2.Spring Cloud Alibaba是什么?

同 Spring Cloud 一样,Spring Cloud Alibaba 也是一套微服务解决方案,包含开发微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。

作为 Spring Cloud 体系下的新实现,Spring Cloud Alibaba 跟Spring Cloud官方的组件或其它的第三方实现如 Netflix, Consul,Zookeeper 等对比,具备了更多的功能:

4.3.Spring Boot和Spring Cloud的版本号说明

  • 版本号说明

Spring Cloud是基于Springboot的对应版本号开发的,属于依赖的关系,所以不能都选用最新版本

  • Spring Boot和Spring Cloud的版本号如下:

Spring Boot版本号:https://spring.io/projects/spring-boot#learn

Spring Cloud版本号:https://spring.io/projects/spring-cloud#learn

Spring Cloud Alibaba版本号:https://spring.io/projects/spring-cloud-alibaba#learn

  • 下表为按时间顺序发布的 Spring Cloud Alibaba 以及对应的适配 Spring Cloud 和 Spring Boot 版本关系

Spring Cloud Alibaba Version

Spring Cloud Version

Spring Boot Version

2021.0.1.0

Spring Cloud 2021.0.1

2.6.3

2.2.7.RELEASE

Spring Cloud Hoxton.SR12

2.3.12.RELEASE

2021.1

Spring Cloud 2020.0.1

2.4.2

2.2.6.RELEASE

Spring Cloud Hoxton.SR9

2.3.2.RELEASE

2.1.4.RELEASE

Spring Cloud Greenwich.SR6

2.1.13.RELEASE

2.2.1.RELEASE

Spring Cloud Hoxton.SR3

2.2.5.RELEASE

2.2.0.RELEASE

Spring Cloud Hoxton.RELEASE

2.2.X.RELEASE

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值