当前位置: 首页 > news >正文

SpringCloud—概述—01

  一、微服务

1)单体架构

业务的所有功能实现都打包在一个 war 包或者 jar 包中,这种方式就称为 单体架构

例如,学校中实现的博客系统,前端+后端+数据库实现,都是在一个项目中

把所有模块都写在一个 web 项目中,然后再统一部署到一个 web 服务器中

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

2)集群和分布式架构

当用户的访问量越来越大,需求也越来越多,流量也会越来越大:

1. 后端服务器负载越来越大,可能会无法访问

2. 业务场景越来越复杂,单体应用会更大。各个业务之间的耦合度也会变高。任何一个问题和迭代,都需要整个项目重新构建,发布

3. 一个微小的问题,可能会至整个应用关掉

优化方案:

1)横向:添加服务器,把单台机器变成多台机器的集群

2)纵向:把一个应用,按照业务进行拆分成多个项目(垂直架构)

以单体结构规模的项目为单位进行垂直划分,也就是将一个大项目拆分成一个一个的单体结构的项目。项目和项目之间相对比较独立,接口多为数据同步功能

集群和分布式

• 集群(cluster)是将⼀个系统完整的部署到多个服务器上,每个服务器都能提供系统的所有服务,多个 服务器通过负载均衡调度完成任务.每个服务器称为集群的节点(node)

• 分布式是将⼀个系统拆分为多个⼦系统,多个⼦系统部署在多个服务器上,多个服务器上的⼦系统 协同合作完成⼀个特定任务

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

1. 从概念上.集群是多个计算机做同样的事,分布式是多个计算机做不同的事

2. 从功能上.集群的每⼀个节点功能是相同的,并且可以替代的.分布式也是多个节点组成的系统,但是 每个节点完成的业务是不同的,⼀个节点出现问题,这个业务就不可访问了

3. 从关系上.分布式和集群在实践中,很多时候是互相配合使⽤的.比如分布式的某⼀个节点,可能由⼀ 个集群来代替.分布式架构大多是建立在集群上的.所以实际的分布式架构设计中并不会把分布式和集群单独区分,⽽是统称:分布式架构

3)微服务架构

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

简单来说,微服务就是很⼩的服务.⼩到⼀个服务只对应⼀个单⼀的功能,只做⼀件事.这个服务可以单 独部署运⾏

微服务之间可以采⽤REST和RPC协议进⾏通信

优势

• 易开发和维护.每个微服务负责的业务⽐较清晰,体量⼩,开发和维护成本降低.

• 容错性⾼.⼀个服务发⽣故障,可以使故障隔离在单个服务中,不影响整体服务故障

• 扩展性好.每个服务都是独⽴运⾏的,我们可以结合项⽬实际情况进⾏扩展,按需伸缩

• 技术选型灵活.每个微服务都是单独的团队来运维,可以根据业务特点和团队特点,选择适合的技术栈

挑战

• 服务依赖.随着服务的数量增多,服务之间的关系也会变得更加复杂.⼀个服务的更改,需要考虑对其 他服务的影响

• 运维成本.⼀个业务流程会涉及多个微服务共同完成,有更多的服务需要编译,部署,运⾏,甚⾄可能 是不同的编程语⾔,不同的运⾏环境,当然也需要集群来处理故障转移等.这对于运维⼈员⽽⾔,挑战 是巨⼤的

• 开发和测试. ⼀个业务流程可能涉及多个微服务共同完成,服务调⽤引⼊⽹络延迟,不可靠的⽹络,如 何进⾏容错处理等问题.这对开发和测试⽽⾔,难度也会提升

• 服务监控.在⼀个单体结构中,很容易实现服务的监控.因为所有功能都在⼀个服务中,微服务架构 下,不仅需要对整个链路进⾏监控,还需要对每⼀个服务实现监控

• 负载均衡.微服务架构中的服务实例数量可能⾮常庞⼤,因此需要有效的服务发现和负载均衡机制 来管理请求流量和保证⾼可⽤性

二、SpringCloud

1)什么是SpringCloud

pring Cloud 提供了⼀些可以让开发⼈员快速构建分布式服务的⼯具,比如配置管理,服务发现,熔断, 智能路由等.他们可以在任何分布式环境中很好的⼯作

Spring Cloud

简单来说,SpringCloud就是分布式微服务架构的⼀站式解决方案,是微服务架构落地的多种技术的集合. 比如:

• Distributed/versioned configuration 分布式版本配置

• Serviceregistration and discovery 服务注册和发现

• Routing 路由

• Service-to-service calls 服务调⽤

• Loadbalancing 负载均衡

• Circuit Breakers 断路器

• Distributed messaging 分布式消息

...

2)Spring Cloud实现方案

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

在SpringCloud的规范下,有很多实现,其中最为出名的是

• SpringCloudNetflix

• SpringCloudAlibaba

接下来的文章中,会讲解以下内容:

服务注册/发现:Eureka  Nacos

服务调用:OpenFeign

配置中心:Nacos

服务网关:SpringCloudGateway

负载均衡:SpringCloudBalance


文章转载自:

http://xLTGZ6v3.bxyzr.cn
http://tepw7oSN.bxyzr.cn
http://6H6oqJHS.bxyzr.cn
http://OsfL27NJ.bxyzr.cn
http://LDW4yZYk.bxyzr.cn
http://lOi8TSN9.bxyzr.cn
http://H5jqdgXz.bxyzr.cn
http://m3uRZOt2.bxyzr.cn
http://kngu7xME.bxyzr.cn
http://UZ8qBep2.bxyzr.cn
http://4N4kEsYy.bxyzr.cn
http://msqNzUjF.bxyzr.cn
http://gIeQxJPm.bxyzr.cn
http://Rrfxp8qj.bxyzr.cn
http://G5Jc0IVc.bxyzr.cn
http://Vp8Qkvzi.bxyzr.cn
http://UYPHzzBI.bxyzr.cn
http://xoEfIjAU.bxyzr.cn
http://mSU693Ig.bxyzr.cn
http://qNK1t6uv.bxyzr.cn
http://Hp9eqRZ3.bxyzr.cn
http://0iPSMD4p.bxyzr.cn
http://N5avORuY.bxyzr.cn
http://AHXQzUwD.bxyzr.cn
http://1SFsBIpj.bxyzr.cn
http://clEvhZs2.bxyzr.cn
http://QuTxWX42.bxyzr.cn
http://t1oIPPEb.bxyzr.cn
http://MAp7ZxsF.bxyzr.cn
http://B8Lc9hOA.bxyzr.cn
http://www.dtcms.com/a/57378.html

相关文章:

  • 人工智能之数学基础:正交矩阵
  • React封装通用Form组件,类型转换、命名控件样式隔离、支持表单验证、位置自定义、自定义布局、提示信息info等功能。未采用二次封装调整灵活,包含使用文档
  • xxx **5. 物理安全** 详细解读
  • 新能源汽车能量管理:开启绿色出行新动力
  • 常见的 Git 命令
  • UV,纹理,材质,对象
  • Python----数据分析(Matplotlib四:Figure的用法,创建Figure对象,常用的Figure对象的方法)
  • MES机联网4:文档资料
  • MySQL中的脏读与幻读:概念、影响与解决方案
  • 进程模型2-进程优先级
  • 类和对象:
  • kafka消息中间件的rebalance机制
  • 介绍一下Qt中的事件过滤
  • Array and string offset access syntax with curly braces is deprecated
  • 《探秘课程蒸馏体系“三阶训练法”:解锁知识层级递进式迁移的密码》
  • ESP32 UART select解析json数据,上位机控制LED灯实验
  • 如何提取图片文字
  • 高性能算法NGO!北方苍鹰优化算法(Northern Goshawk Optimization,NGO)
  • 解决JDK 序列化导致的 Redis Key 非预期编码问题
  • 手写简易Tomcat核心实现:深入理解Servlet容器原理
  • 萌新学 Python 之面向对象的下划线控制权限访问
  • PHP:phpstudy无法启动MySQL服务问题解决
  • Java基础面试题全集
  • 快速使用MASR V3版不能语音识别框架
  • 动态规划完全背包系列一>完全背包
  • 动态规划详解(二):从暴力递归到动态规划的完整优化之路
  • 使用OpenCV和MediaPipe库——驼背检测(姿态监控)
  • 深度神经网络架构设计与工程实践 ——从理论到产业落地的全方位解析
  • leetcode 95.不同的二叉搜索树 Ⅱ
  • 设计AI芯片架构的入门 研究生入行数字芯片设计、验证的项目 opentitan