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

一、概述

集群(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.mzph.cn/news/16899.shtml

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

相关文章

Mac 安装配置adb命令环境(详细步骤)

一、注意:前提要安装java环境。 因为android sdk里边开发的一些包都是依赖java语言的,所以,首先要确保已经配置了java环境。 二、在Mac下配置android adb命令环境,配置方式如下: 1、下载并安装IDE (andr…

LLaMA系列 | LLaMA和LLaMA-2精简总结

文章目录 1、LLaMA1.1、模型结构1.2、训练方式1.3、结论 2、LLaMA-22.1、相比LLaMA1的升级2.3、模型结构2.3.1、MHA, MQA, GQA区别与联系 2.4、训练方式 1、LLaMA 🔥 纯基座语言模型 《LLaMA: Open and Efficient Foundation Language Models》:https:/…

Unity3d C#快速打开萤石云监控视频流(ezopen)支持WebGL平台,替代UMP播放视频流的方案(含源码)

前言 Universal Media Player算是视频流播放功能常用的插件了,用到现在已经不知道躺了多少坑了,这个插件虽然是白嫖的,不过被甲方和领导吐槽的就是播放视频流的速度特别慢,可能需要几十秒来打开监控画面,等待的时间较…

Spring学习笔记之spring概述

文章目录 Spring介绍Spring8大模块Spring特点 Spring介绍 Spring是一个轻量级的控制反转和面向切面的容器框架 Spring最初的出现是为了解决EJB臃肿的设计,以及难以测试等问题。 Spring为了简化开发而生,让程序员只需关注核心业务的实现,尽…

HTML+CSS+JavaScript:轮播图的自动播放、手动播放、鼠标悬停暂停播放

一、需求 昨天我们做了轮播图的自动播放,即每隔一秒自动切换一次 今天我们增加两个需求: 1、鼠标点击向右按钮,轮播图往后切换一次;鼠标点击向左按钮,轮播图往前切换一次 2、鼠标悬停在轮播图区域中时,…

Verilog语法学习——LV5_位拆分与运算

LV5_位拆分与运算 题目来源于牛客网 [牛客网在线编程_Verilog篇_Verilog快速入门 (nowcoder.com)](https://www.nowcoder.com/exam/oj?page1&tabVerilog篇&topicId301) 题目 题目描述: 现在输入了一个压缩的16位数据,其实际上包含了四个数据…

从互联网到云时代,Apache RocketMQ 是如何演进的?

作者:隆基 2022 年,RocketMQ 5.0 的正式版发布。相对于 4.0 版本而言,架构走向云原生化,并且覆盖了更多业务场景。 消息队列演进史 操作系统、数据库、中间件是基础软件的三驾马车,而消息队列属于最经典的中间件之一…

用python需要下载软件吗,python需要安装哪些软件

大家好,本文将围绕安装python需要什么样的电脑配置展开说明,python需要安装哪些软件是一个很多人都想弄明白的事情,想搞清楚用python需要下载软件吗需要先了解以下几个事情。 编程这东西很神奇。对于那些知道如何有用和有趣的这个工具,对于Xi…

Windows 实例如何开放端口

矩池云 Windows 实例相比于 Linux 实例,除了在租用机器的时候自定义端口外,还需要在 Windows防火墙中添加入口规则。接下来将教大家如何设置 Windows 防火墙,启用端口。 租用成功后通过 RDP 链接连接服务器,然后搜索防火墙&#x…

React的UmiJS搭建的项目集成海康威视h5player播放插件H5视频播放器开发包 V2.1.2

最近前端的一个项目,大屏需要摄像头播放,摄像头厂家是海康威视的,网上找了一圈都没有React集成的,特别是没有使用UmiJS搭脚手架搭建的,所以记录一下。 海康威视的开放平台的API地址,相关插件和文档都可以下…

简单的python有趣小程序,有趣的代码大全python

这篇文章主要介绍了python简单有趣的程序源代码,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

Hadoop学习日记-YARN组件

YARN(Yet Another Resource Negotiator)作为一种新的Hadoop资源管理器,是另一种资源协调者。 YARN是一个通用的资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度 YARN架构图 YARN3大组件: (物理层面&#xff09…

ICML 2023 | 拓展机器学习的边界

编者按:如今,机器学习已成为人类未来发展的焦点领域,如何进一步拓展机器学习技术和理论的边界,是一个极富挑战性的重要话题。7月23日至29日,第四十届国际机器学习大会 ICML 2023 在美国夏威夷举行。该大会是由国际机器…

HarmonyOS/OpenHarmony元服务开发-配置卡片的配置文件

卡片相关的配置文件主要包含FormExtensionAbility的配置和卡片的配置两部分: 1.卡片需要在module.json5配置文件中的extensionAbilities标签下,配置FormExtensionAbility相关信息。FormExtensionAbility需要填写metadata元信息标签,其中键名称…

CentOS 7安装Docker

文章目录 🌞版本选择☀️1.CentOS安装Docker🌱1.1.卸载(可选)🌱1.2.安装docker🌱1.3.启动docker🌱1.4.配置镜像加速 ☀️2.CentOS7安装DockerCompose🌱2.1.下载🌱2.2.修改…

赛车游戏——【极品飞车】(内含源码inscode在线运行)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄,vue成神之路★ ★ 解决算法,一个专栏就够了★ ★ 架…

【Lua学习笔记】Lua进阶——Table(3) 元表

接上文 文章目录 元表__tostring__call__index__newindex运算符元方法其它元表操作 元表 Q:为什么要使用元表? A:在Lua中,常常会需要表与表之间的操作。元表中提供了一些元方法,通过自定义元方法可以实现想要的功能&…

时间复杂度为O(n2)的三种简单排序算法

1.冒泡排序 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少少一个元素移动到它应该在的位置,重复n次,就完成了n个数据的排序工作。 /*** …

数据包在网络中传输的过程

ref: 【先把这个视频看完了】:数据包的传输过程【网络常识10】_哔哩哔哩_bilibili 常识都看看 》Ref: 1. 这个写的嘎嘎好,解释了为啥4层7层5层,还有数据包封装的问题:数据包在网络中的传输过程详解_数据包传输_张孟浩_jay的博客…

<C++>二、 类和对象

1.面向对象和面向过程 C语言是面向过程的,关注的是过程,分析出求解问题的步骤, 通过函数调用逐步解决问题。 C是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 2. C类 C…