您的位置:首页 > 房产 > 建筑 > 网页设计实验报告代码_公司主页制作_刷排名seo软件_100个免费推广网站

网页设计实验报告代码_公司主页制作_刷排名seo软件_100个免费推广网站

2025/5/17 13:50:37 来源:https://blog.csdn.net/LHY537200/article/details/146703774  浏览:    关键词:网页设计实验报告代码_公司主页制作_刷排名seo软件_100个免费推广网站
网页设计实验报告代码_公司主页制作_刷排名seo软件_100个免费推广网站

一.认识微服务

在学习Spring Cloud 之前, 我们先来了解下什么是微服务, 以及微服务的发展史. 在架构发展的过程中, 项⽬开发遇到了哪些问题, 以及Spring Cloud是⽤来解决什么问题的。

1.1单体架构

  • 概念:单体架构是将整个应用程序的所有功能模块,如用户界面、业务逻辑、数据访问等,都打包在一个单一的可执行文件中。这个文件通常会部署在一个或多个服务器上运行,以提供完整的应用服务。

 比如说我有一个SpringBoot的项目,这个项目实现了所有该具备的功能,我把它打包成jar文件或者war文件,然后部署到服务器上运行。

这种架构开发简单, 部署简单, ⼀个项⽬就包含了所有的功能, 省去了多个项⽬之间的交互和调⽤消耗. 直接部署在⼀个服务器即可

1.2 集群和分布式架构

当⽹站的⽤⼾量越来越⼤, 需求也会越来越多, 流量也会越来越⼤, 服务器就可能会面临如下问题:

  • 后端服务器的压⼒就会越来越⼤, 负载越来越⾼, 甚⾄出现⽆法访问的情况
  • 业务场景逐渐复杂. 为了满⾜⽤⼾的需求, 单体应⽤也会越来越⼤. 各个业务代码之间的耦合度也会 越来越⾼. 任何⼀个问题, 都需要整个项⽬重新构建, 发布.
  • ⼀个微⼩的问题, 可能会导致整个应⽤挂掉

我们从两个方面进行优化:

  • 横向: 直接添加服务器, 把单台机器变成多台机器的集群
  • 纵向: 把⼀个应⽤, 按照业务进⾏拆分, 拆分为多个项⽬. 此架构也称为垂直架构

横向(集群)比较简单,就是简单粗暴,加钱,不是,加机器。

主要解释一下纵向(分布式):

分布式是将⼀个系统拆分为多个⼦系统,多个子系统部署在多个服务器上,多个服务器上的⼦系统
协同合作完成⼀个特定任务,也可以理解成将业务功能模块的不同进行拆分。

 

 1.3集群和分布式区别和联系

  • 从概念上. 集群是多个计算机做同样的事, 分布式是多个计算机做不同的事
  • 从功能上. 集群的每⼀个节点功能是相同的, 并且可以替代的. 分布式也是多个节点组成的系统, 但是每个节点完成的业务是不同的, ⼀个节点出现问题, 这个业务就不可访问了
  • 从关系上,分布式和集群在实践中, 很多时候是互相配合使⽤的,⽐如分布式的某⼀个节点, 可能由⼀个集群来代替. 分布式架构⼤多是建⽴在集群上的. 所以实际的分布式架构设计中并不会把分布式和集群单独区分, ⽽是统称: 分布式架构.

 不用看这么复杂,简单理解就是,比如说单体架构就是一个全栈工程师(就当是全能看待),你无论是后端有问题,还是前端有问题,就找全栈工程师解决就行了,有很多全栈工程师,那就称为集群分布式就是划分前端工程师和后端工程师,每个都只分别做好自己的工作,但是一个项目需要双方进行协商搭配。前端出现问题,去找前端工程师,后端出现问题,就找后端工程师,就这样理解就行。

 1.4微服务架构

在分布式架构下, 当部署的服务越来越多, 重复的代码就会越来越多, 服务的调⽤关系也会越来越复杂我们可以把⼀些通⽤的, 会被多个上层服务调⽤的共享业务, 提取成独⽴的基础服务, 组成⼀个个微⼩的服务. 这就是微服务.

 这样理解,分布式就是前后端人员分离,就是进行部分的划分,微服务就是不仅仅划分,还划分的很细,比如说他还可以将后端开发,划分成系统开发,数据开发,策略开发等,将一个业务功能划分的更加细致,大概就是这样,两者很相似。

微服务架构就是对分布式架构的更加细致的划分。

分布式架构侧重于压⼒的分散, 强调的是服务的分散化. 微服务侧重于能⼒的分散, 更强调服务的专业化和精细分⼯. 从实践的⻆度来看, 微服务架构通常是分布式服务架构, 反之则未必成⽴. 所以, 选择微服务通常意味着需要解决分布式架构的各种难题。

 

 微服务优势

  • 易开发和维护. 每个微服务负责的业务⽐较清晰, 体量⼩, 开发和维护成本降低. 容错性⾼.
  • 个服务发⽣故障, 可以使故障隔离在单个服务中, 不影响整体服务故障.
  • 扩展性好. 每个服务都是独⽴运⾏的, 我们可以结合项⽬实际情况进⾏扩展, 按需伸缩.
  • 技术选型灵活. 每个微服务都是单独的团队来运维, 可以根据业务特点和团队特点, 选择适合的技术栈.

 微服务挑战

虽然微服务具备很多的优势, 但由于服务数的增加, 服务治理也是我们⾯临的巨⼤挑战.
  • 服务依赖. 随着服务的数量增多, 服务之间的关系也会变得更加复杂. ⼀个服务的更改, 需要考虑对其他服务的影响.
  • 运维成本. ⼀个业务流程会涉及多个微服务共同完成, 有更多的服务需要编译, 部署, 运⾏, 甚⾄可能
  • 是不同的编程语⾔, 不同的运⾏环境, 当然也需要集群来处理故障转移等. 这对于运维⼈员⽽⾔, 挑战是巨⼤的.
  • 开发和测试. ⼀个业务流程可能涉及多个微服务共同完成, 服务调⽤引⼊⽹络延迟, 不可靠的⽹络, 如何进⾏容错处理等问题. 这对开发和测试⽽⾔, 难度也会提升.
  • 服务监控. 在⼀个单体结构中, 很容易实现服务的监控. 因为所有功能都在⼀个服务中, 微服务架构下, 不仅需要对整个链路进⾏监控, 还需要对每⼀个服务实现监控.
  • 负载均衡. 微服务架构中的服务实例数量可能⾮常庞⼤,因此需要有效的服务发现和负载均衡机制来管理请求流量和保证⾼可⽤性

 总言之就是,在如何管理各个功能模块上的挑战。

 

二.微服务解决⽅案- Spring Cloud

2.1什么是Spring Cloud? 

 

Spring Cloud 就是分布式微服务架构的⼀站式解决⽅案, 是微服务架构落地的多种技术的集
合,就是上述微服务带来的挑战,springcloud就是提供对这些挑战的解决方案,你拿来用就行了。
补充:
Spring Cloud 并不是Spring 团队研发的框架, 它只是把⼀些⽐较优秀的解决微服务架构中常
⻅问题的开源框架基于SpringCloud规范进⾏了整合, 并基于SpringBoot的⻛格,对这些组件
进⾏封装, 屏蔽掉了复杂的配置和实现原理. 为开发者提供了开箱即⽤的微服务开发体验.
这些开源技术的框架是由各个公司来维护的. Spring Cloud 就是这些微服务的⼤管家。
简单总结就是:技术不是我开发的,我只负责基于SpringBoot的风格进行 整合。

2.2Spring Cloud版本

Spring Cloud 是⼀个由很多⼦项⽬组成的庞⼤项⽬, 这些⼦项⽬由各个公司来维护的, 所以发布阶段也是不同的.
为了管理主项⽬和⼦项⽬的依赖关系, 以及为了避免和⼦项⽬版本的冲突, 主项⽬版本命名并没有采⽤和⼦项⽬数字版本化的形式, ⽽是采⽤了英⽂名称.
这个英⽂版本名称也⽐较有趣, Spring Cloud 采⽤了英国伦敦地铁站的名称来命名,并由地铁站名称字⺟A-Z依次类推的形式来发布迭代版本
为什么不见ABC版本,这些早期版本是有的,只不过沉没了。

 

 Spring Cloud和SpringBoot的关系(重要)

Spring Cloud中的所有⼦项⽬都依赖SpringBoot, 所以SpringBoot 和Spring Cloud的版本之间也存在⼀定的对应关系。

 

如果我们有⼀个SpringBoot项⽬, 我们希望在这个项⽬中添加SpringCloud的⼀些组件, 需要根据当前项⽬的SpringBoot版本, 选择SpringCloud的版本

2.3Spring Cloud实现⽅案 

在Spring Cloud的规范下, 有很多实现, 其中最为出名的是
  • Spring Cloud Netflix
  • Spring Cloud Alibaba

Spring Cloud Netflix是 Netflix OSS(Netflix Open Source Software)在Spring Cloud规范下的实现.

包含的组件及其主要功能⼤致如下:
  • Eureka: 服务注册和发现
  • Zuul: 服务⽹关
  • Ribbon: 负载均衡
  • Feign: 服务调⽤组件
  • Hystrix: 断路器, 提供服务熔断和限流
  • Hystrix Dashboard: 监控⾯板
在很⻓的⼀段时间⾥, Spring Cloud ⼀度被泛指 Spring Cloud Netflix. Spring Cloud⼀直以来把Netflix OSS 套件作为其官⽅默认的⼀站式解决⽅案. 然⽽, Netflix公司在2018年前后宣布其核⼼组件Hystrix、Ribbon、Zuul等均进⼊维护状态, Spring Cloud 也被迫宣布删除这些维护模块。
就是公司对组件不进行更新了,只进行维护

 

Spring Cloud Alibaba 是阿⾥巴巴集团下的开源组件和云产品在Spring Cloud规范下的实现.
虽然Spring Cloud Alibaba⽬前并不是Spring Cloud官⽅推荐的默认⽅案, 但是Spring Cloud Alibaba
是阿⾥中间件团队主导的⼀个新⽣项⽬,正处于⾼速迭代中. 甚⾄在Alibaba的开源组件还没有织⼊
SpringCloud⽣态之前, 就已经在各⼤公司⼴泛使⽤了
官⽅⽹站: Spring Cloud Alibaba 是什么 | Spring Cloud Alibaba
如果说Spring Cloud Netflix 是 Spring Cloud 的第⼀代实现, 那么Spring Cloud Alibaba 也可以看做是Spring Cloud 的第⼆代实现, 主要由 Nacos、Sentinel、Seata 等组件组成
Spring Cloud Alibaba 吸收了 Spring Cloud Netflix 微服务框架的核⼼架构思想, 并进⾏了⾼性能改
进. ⾃ Spring Cloud Netflix 进⼊停更维护后, Spring Cloud Alibaba 逐渐代替它成为主流的微服务框
架.

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com