广告设计公司宣传,wordpress优化攻略,搜索引擎优化排名优化培训,塘沽做网站比较好的#x1f3a5; 个人主页#xff1a;Dikz12#x1f525;个人专栏#xff1a;Spring学习之路#x1f4d5;格言#xff1a;吾愚多不敏#xff0c;而愿加学欢迎大家#x1f44d;点赞✍评论⭐收藏
目录
1. 认识微服务 1.1 单体架构
1.2 集群和分布式架构 1.3 集群和分布式… 个人主页Dikz12个人专栏Spring学习之路格言吾愚多不敏而愿加学欢迎大家点赞✍评论⭐收藏
目录
1. 认识微服务 1.1 单体架构
1.2 集群和分布式架构 1.3 集群和分布式
1.4 微服务架构
2. 什么是Spring Cloud
2.1 Spring Cloud和Spring Boot的关系
2.2 Spring Cloud实现方案 总体内容方向 什么是微服务什么是Spring Cloud ? 1. 认识微服务
下图表示服务架构从单体单体应⽤逐渐转变为微服务应⽤的过程. 1.1 单体架构
很多创业公司早期或者传统企业会把业务的所有功能实现都打包在⼀个项⽬,这就是单体架构. 这种架构开发简单,部署简单,⼀个项⽬就包含了所有的功能,省去了多个项⽬之间的交互和调⽤消耗.直接部署在⼀个服务器即可. 1.2 集群和分布式架构 当网站的的用户量越来越大需求量越来越多请求量越来越大服务器可能就会⾯临以下问题:
后端服务器的压⼒就会越来越⼤负载越来越⾼甚⾄出现⽆法访问的情况业务场景逐渐复杂. 为了满⾜⽤⼾的需求单体应⽤也会越来越⼤.各个业务代码之间的耦合度也会越来越⾼.任何⼀个问题,都需要整个项⽬重新构建,发布.⼀个微⼩的问题,可能会导致整个应⽤挂掉. 可以从两个方面进行优化
横向添加服务器,把单台机器变成多台机器的集群.纵向把一个系统根据业务进行拆分拆分成多个项目.此架构也称为垂直架构. 1.3 集群和分布式
集群(cluster)是将⼀个系统完整的部署到多个服务器上每个服务器都能提供系统的所有服务多个服务器通过负载均衡调度完成任务. 每个服务器称为集群的节点(node)。 (不同的服务器功能相同).
分布式是将⼀个系统拆分为多个⼦系统多个⼦系统部署在多个服务器上多个服务器上的⼦系统协同合作完成⼀个特定任务. (不同的服务器共同完成一个工作 比如 刚成立的一个餐馆只有一个厨师这个厨师负责做饭相关的所有工作.(备菜,洗菜,切菜,炒菜)。随着这个饭店的⽣意越来越好,这个厨师忙不过来了. 出现问题就要解决问题. 横向在招聘一个厨师这两个厨师都是可以独立做饭的.。这两个厨师的关系就是集群.纵向招聘一个配菜师负责备菜洗菜切菜。 厨师和配菜师的关系就是分布式. 在后来⼀个配菜师也忙不过来了, ⼜请了⼀个配菜师, 这两个配菜师的关系就是集群. 集群和分布式区别和联系
从概念上.集群是多个计算机做同样的事分布式是多个计算机做不同的事.从功能上.集群的每⼀个节点功能是相同的并且可以替代的.分布式也是多个节点组成的系统,但是每个节点完成的业务是不同的⼀个节点出现问题这个业务就不可访问了.从关系上.分布式和集群在实践中很多时候是互相配合使⽤的.分布式架构⼤多是建⽴在集群上的.所以实际的分布式架构设计中并不会把分布式和集群单独区分⽽是统称:分布式架构.
1.4 微服务架构 在分布式架构下当部署的服务越来越多重复的代码就会越来越多服务的调⽤关系也会越来越复杂.我们可以把⼀些通⽤的会被多个上层服务调⽤的共享业务提取成独⽴的基础务组成⼀个个微⼩的服务。这就是微服务. 简单来说,微服务就是很⼩的服务.⼩到⼀个服务只对应⼀个单⼀的功能,只做⼀件事.这个服务可以单独部署运⾏。 微服务之间可以采⽤REST和RPC协议进⾏通信. 从这个⻆度来看,微服务架构是分布式架构的⼀种拓展,这种架构模式下它拆分粒度更⼩,服务更独⽴.可以理解为:微服务是⼀种经过良好架构设计的分布式架构⽅案. 分布式:服务拆分,拆了就⾏.微服务: 不仅拆分还拆分的很细通常指不能再拆的服务. 优势
易开发和维护。每个微服务负责的业务⽐较清晰,体量⼩,开发和维护成本降低.容错性⾼。⼀个服务发⽣故障,可以使故障隔离在单个服务中,不影响整体服务故障.扩展性好。每个服务都是独⽴运⾏的,我们可以结合项⽬实际情况进⾏扩展,按需伸缩.技术选型灵活。每个微服务都是单独的团队来运维,可以根据业务特点和团队特点,选择适合的技术栈.
2. 什么是Spring Cloud 先看官网介绍Spring Cloud Spring Cloud 提供了⼀些可以让开发⼈员快速构建分布式服务的⼯具,⽐如配置管理,服务发现,熔断,智能路由等. 它们可以在任何分布式环境中很好的⼯作. 简单来说Spring Cloud就是分布式微服务架构的⼀站式解决⽅案,是微服务架构落地的多种技术的集合. Distributed/versioned configuration分布式版本配置Service registration and discovery服务注册和发现Routing路由Service-to-service calls服务调⽤ Load balancing负载均衡Circuit Breakers断路器Distributed messaging分布式消息 ....... Spring Cloud 并不是Spring 团队研发的框架,它只是把⼀些⽐较优秀的解决微服务架构中常 ⻅问题的开源框架基于SpringCloud规范进⾏了整合,并基于SpringBoot的⻛格,对这些组件 进⾏封装,屏蔽掉了复杂的配置和实现原理.为开发者提供了开箱即⽤的微服务开发验. 2.1 Spring Cloud和Spring Boot的关系
⽐如SpringBoot3.2.X对应的SpringCloud版本是2023.0.X。 如果我们有⼀个SpringBoot项⽬,我们希望在这个项⽬中添加SpringCloud的⼀些组件,需要根据当前项⽬的SpringBoot版本,选择SpringCloud的版本。
2.2 Spring Cloud实现方案 在Spring Cloud的规范下有很多实现其中最为出名的是
Spring Cloud NetflixSpring Cloud AlibabaSpring Cloud Alibaba 吸收了Spring Cloud Netflix 微服务框架的核⼼架构思想,并进⾏了⾼性能改
进。⾃Spring Cloud Netflix进⼊停更维护后Spring Cloud Alibaba逐渐代替它成为主流的微服务框架. Spring Cloud 实现对⽐ SpringCloud官⽅默认 Spring Cloud NetflixSpring Cloud Alibaba服务注册/发现EurekaEurekaNacos服务调⽤OpenFeignFeignDubbo配置中⼼SpringCloudConfigArchaiusNacos服务⽹关SpringCloudGatewayZuulSpringCloudGateway负载均衡SpringCloud LoadBalanceRibbonDubbo
注黄色表示进入维护的组件.