【入门SpringCloud(一)】什么是SpringCloud?

news2024/12/27 13:34:01

一、概述

集群(Cluster):同一种软件服务的多个服务节点共同为系统提供服务过程,称之为该软件服务集群。

分布式(Distribute):分布式是一种系统架构,是将系统中的不同组件分布在不同的计算机上执行,分布式系统是由多个独立计算机节点组成的系统,分布式系统的设计需要考虑许多重要的因素,例如通信方式、数据的一致性。因此分布式系统的设计和实现需要使用适当的技术和工具,例如分布式算法、消息队列、负载均衡等等。不同的软件集群共同为一个系统提供服务,这个系统则称之为分布式系统。

微服务(Micro Service):微服务是一种架构,这种架构是将单个的整体应用程序分割成更小的项目关联的独立的服务。一个服务通常实现一组独立的特性或功能,包含自己的业务逻辑和适配器(有点像将应用程序强遵循单一职责原则的感觉)。各个微服务之间的关联通过暴露 api 来实现。这些独立的微服务不需要部署在同一个虚拟机,同一个系统和同一个应用服务器中。

为什么微服务?

单体应用

在这里插入图片描述

# 1. 优点
-	单体架构模式在项目初期很小的时候开发方便,测试方便,部署方便,运行良好
# 2. 缺点
-	应用随着时间的推进,加入的功能越来越多,最终会变得巨大,一个项目中很有可能数百万行的代码,互相之间繁琐的jar包。
-	久而久之,开发效率低,代码维护困难。
-	还有一个如果想整体应用采用新的技术,新的框架或者语言,那是不可能的。
-	任何模块的漏洞或者错误都会应用这个应用,降低系统的可靠性。

微服务架构应用

在这里插入图片描述

# 1. 优点
-	将服务拆分成多个单一职责的小的服务,进行单独部署,服务之间通过网络进行通信。
-	每个服务应该有自己单独的管理团队,高度自治
-	服务各自有自己的单独的职责,服务之间松耦合,避免因一个模块的问题导致服务崩溃
# 2. 缺点
-	开发人员要处理分布式系统的复杂性
-	多服务运维难度,随着服务的增加,运维的压力也在增大
-	服务治理 和 服务监控 关键

Spring Cloud 就是用来处理微服务架构中可能会出现的问题的,它内部有各种各样的组件,各个组件就是用来处理这些问题的。所以可以说Spring Cloud是一种处理微服务架构应用的工具(框架)。

架构的演变过程

在这里插入图片描述

  1. 单一架构(All In One)

起初当网站流量很小时,将所有功能都写在一个应用里面,对整个应用进行部署,以减少部署节点和成本。对于这个架构简化增删改查的工作量的数据访问框架(ORM)是关键。

  1. 垂直架构

当访问量逐渐增大,单一应用增加器带来的加速度越来越小,提升效率的方法之一是将应用拆分成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。

  1. 分布式服务架构(Tomcat集群、MySQL集群、Redis集群)

当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务架构(RPC)是关键。

RPC:远程过程调用 作用:服务间通信一种手段

OSI七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

  1. SOA 面向服务体系架构 微服务(Micro Service)

当服务越来越多,容量的评估,小服务的资源的浪费等问题逐渐出现,此时需要增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高及其利用率的资源调度和治理中心(SOA)是关键。

微服务的解决方案

在这里插入图片描述

a. 国内的阿里系

SpringBoot + Dubbo + Zookeeper	最早期

b. Spring Cloud 技术栈

Spring Cloud netflix	
最早期(基于Netflix公司开源的组件进行封装,提供了微服务一栈式解决方案)

Spring Cloud  Spring	
自己封装的服务解决方案(在Spring Cloud Netflix基础上封装了阿里巴巴的微服务的解决方案)

Spring Cloud  alibaba	
阿里巴巴解决方案(目前Spring官方趋势整在逐渐吸收Netflix组件的精华,并在此基础进行二次封装优化,打造Spring专有的解决方案)

二、SpringCloud简介

Spring Cloud 是 Java 语言的微服务框架(微服务是一种思想,是一种架构,而Spring Cloud是对它的实现,它可以用来管理微服务的方方面面),它依赖于 Spring Boot,有快速开发、持续交付和容易部署等特点。Spring Cloud组件很多,涉及微服务的方方面面,方便我们去管理。

Spring Cloud 在开发部署上继承了 Spring Boot 的一些优点,提高其在开发和部署上的效率。**Spring Cloud 的首要目标就是通过提供一系列开发组件和框架,帮助开发者迅速搭建一个分布式的微服务系统。**Spring Cloud 是通过包装其他技术框架来实现的,例如包装开源的 Netflix OSS 组件,实现了一套通过基于注解、Java 配置和基于模版开发的微服务框架。Spring Cloud 提供了开发分布式微服务系统的一些常用组件,例如服务注册和发现、配置中心、熔断器、远程调用、智能路由、微代理、控制总线、全局锁、分布式会话等等。

学习网址:

Spring Cloud官方文档地址

Spring Cloud Alibaba 的文档

版本对应关系可以在对应文档查看。

三、SpringCloud常用组件表

在这里插入图片描述

服务的注册和发现。(eureka、nacos、consul)

服务的负载均衡。(ribbon、dubbo)

服务的相互调用。(openFeign、dubbo)

服务的容错。(hystrix、sentinel)

服务网关。(gateway、zuul)

服务配置的统一管理。(config-server、nacos、apollo)

服务的消息总线。(bus)

服务安全组件。(Security,Oauth2.0)

服务监控。(admin)(jvm)

链路追踪。(sleuth+zipkin)

微服务架构风格图(来自动力节点)

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/820654.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络期末复习简答题、综合题、实验题答案整理汇总详细(持续更新中)

文章目录 简答题一、第一章:计算机网络概述1. TCP/IP 与 OSI 相结合的五层体系结构将计算机网络划分成哪几个层次?各层的主要功能是什么 二、第二章:物理层1. 交换机、路由器、网卡、网桥、集线器、中继器分别工作在哪一层2. 简述交换机、集线…

10.类型声明文件

类型声明文件的作用是 为已存在的JS库提供类型信息 目录 1 axios中的类型声明文件 2 类型声明文件与普通ts文件的区别 3 vscode中内置的类型声明文件 4 第三方库内置的类型声明文件 5 DefinitelyTyped 提供类型声明文件 6 自定义类型声明文件 6.1 创建给ts用的类…

同为科技(TOWE)带热插拔功能机柜PDU插座的应用

所谓热插拔(hot-plugging或Hot Swap),即带电插拔,指的是在不关闭系统电源的情况下,将模块、板卡插入或拔出系统而不影响系统的正常工作,从而提高了系统的可靠性、快速维修性、冗余性和对灾难的及时恢复能力…

JMeter 的使用

文章目录 1. JMeter下载2. JMeter的使用2.1 JMeter中文设置2.2 JMeter的使用2.2.1 创建线程组2.2.2 HTTP请求2.2.3 监听器 1. JMeter下载 官网地址 https://jmeter.apache.org/download_jmeter.cgi https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.2.zip 下载解…

Vue2 第十二节 Vue组件化编程 (二)

1. VueComponent 2. 单文件组件 一. VueComponent 组件本质上是一个名为VueComponent的构造函数&#xff0c;不是程序员定义的&#xff0c;是Vue.extend生成的只需要写<school/>或者<school><school/>&#xff0c;Vue解析时&#xff0c;会帮我们创建schoo…

ThinkPHP 6 添加跳转提示扩展 liliuwei/thinkphp-jump

liliuwei/thinkphp-jump 是 TP5 中经典跳转提示&#xff0c;在 TP6 中已经取消&#xff0c;通过 composer 下载该扩展可以在 TP6 中使用 TP5 的跳转提示操作。 安装扩展 在应用根目录执行: composer require liliuwei/thinkphp-jump引入扩展 在全局配置目录生成 jump.php 文件…

Activity的生存期

以下内容摘自郭霖《第一行代码》第三版 Activity的生存期 Activity类中定义了7个回调方法&#xff0c;覆盖了Activity生命周期的每一个环节&#xff1a; onCreate()。这个方法你已经看到过很多次了&#xff0c;我们在每个Activity中都重写了这个方法&#xff0c;它会在Activit…

安科瑞电动机保护器产品在污水处理厂的应用-安科瑞黄安南

应用场景 功能 1&#xff09;排污泵经常会出现过载、缺相等问题&#xff0c;导致电机烧坏&#xff1b; 2&#xff09;为电动机提供完善的保护&#xff0c;并具备多种事件记录追忆功能&#xff1b; 3&#xff09;全电参量测量&#xff0c;包括但不限于三相电流、三相电压、有…

11-矩阵(matrix)_方阵_对称阵_单位阵_对角阵

矩阵及其运算 [ a 11 ⋯ a 1 n ⋯ ⋯ ⋯ a m 1 ⋯ a m n ] \begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \cdots & \cdots & \cdots \\ a_{m1} & \cdots & a_{mn} \\ \end{bmatrix} ​a11​⋯am1​​⋯⋯⋯​a1n​⋯amn​​ ​ 矩阵就是二维数组&…

模板(下)

文章目录 非类型模板参数 模板的特化 模板分离编译 一、非类型模板参数 模板参数分为类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。 非类型形参&#xff1a;就是用一个常量作为类(函数)模板的…

【笔试强训选择题】Day33.习题(错题)解析

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;笔试强训选择题 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;&#xff…

记一次 HTTPS 抓包分析和 SNI 的思考

日常听说 HTTPS 是加密协议&#xff0c;那现实中的 HTTPS 流量&#xff0c;是真的完全加密吗&#xff1f; ——答案是&#xff0c;不一定。原因嘛&#xff0c;抓个包就知道了。 我们用 curl 命令触发一下&#xff1a; curl -v https://s-api.37.com.cn/api/xxx * Trying 1…

【雕爷学编程】MicroPython动手做(27)——物联网之掌控板小程序2

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

退退退!台风“卡努”或转向!打开华为天气查看台风实时路径

近期台风频繁&#xff0c;刚送走了“杜苏芮”&#xff0c;又或将迎来第六号超强台风“卡努”。面对来势汹汹的台风&#xff0c;通勤和外出变得困难重重。为了有效抵御台风肆虐&#xff0c;大家需要做好应对措施&#xff0c;保障人身安全。 如果处于台风登陆的影响范围内&#…

莱佛士学生作品精彩亮相小马宝莉40周年艺术展

由全球领先玩乐公司孩之宝举办的“小马宝莉40周年艺术展”在上海市黄浦区淮海中路862-864号进行展出。 ▲莱佛士学生作品亮相小马宝莉40周年展 本次展览特别邀请多位国内新生代艺术家以小马宝莉为灵感缪斯开展全新创作实践&#xff0c;通过雕塑、绘画、新媒体艺术等作品讲述…

编程语言:基础知识与思维方式的演进

编程语言的基础知识差异并不大&#xff0c;因为计算机发展源于冯诺伊曼模型&#xff0c;而编程语言只是其工具之一。区别在于使用工具的思维方式。以前&#xff0c;人们让计算机做某件事&#xff0c;C语言需要清楚地描述过程&#xff0c;即面向过程。随着计算能力的提升&#x…

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(20)-Fiddler精选插件扩展安装让你的Fiddler开挂到你怀疑人生

1.简介 Fiddler本身的功能其实也已经很强大了&#xff0c;但是Fiddler官方还有很多其他扩展插件功能&#xff0c;可以更好地辅助Fiddler去帮助用户去开发、测试和管理项目上的任务。Fiddler已有的功能已经够我们日常工作中使用了&#xff0c;为了更好的扩展Fiddler&#xff0c…

二阶段web基础与http协议

dns与域名 网络是基于tcp/ip协议进行通信和连接的 应用层-----传输层-----网络层-----数据链路层-----物理层 ip地址&#xff0c;每一台主机都有一个唯一的地址标识&#xff08;固定的ip地址&#xff09; 1.区分用户和计算机 2.通信 ip地址的问题在于32位二进制数组成的&…

Linux安装部署并使用Redis(包含Redis Desktop Manager界面化工具)

文章目录 前言一、Redis的简介二、redis的安装与配置&#xff08;Linux环境&#xff09;三、redis的使用&#xff08;Redis Desktop Manager界面化&#xff09;四、基本命令**String基本命令&#xff1a;****hash基本命令&#xff1a;****List基本命令&#xff1a;****set基本命…

探究SAM和眼球追踪技术在自动医学图像分割的应用(2023+GazeSAM: What You See is What You Segment)

摘要&#xff1a; 本研究探讨眼动追踪技术与SAM的潜力&#xff0c;以设计一个协同的人机交互系统&#xff0c;自动化医学图像分割。提出了GazeSAM系统&#xff0c;使放射科医生能够在图像诊断过程中通过简单地查看感兴趣的区域来收集分割掩模。该系统跟踪放射科医生的眼球运动…