SpringCloud入门简介

news2024/11/24 10:34:50

1. SpringCloud是什么

SpringCloud是微服务治理方案之一;

SpringCloud与SSM框架和SpringBoot没什么关联

SSM:web应用的开发框架,包含视图层(模型model+视图view+控制器controller),业务层,持久层

SpringBoot:简化SSM的配置,同时提供构建项目的脚手架

那么SpringCloud是什么呢?

SpringCloud是一系列微服务治理组件的集合。

通过这些组件可以方便快捷的管理微服务架构的项目,让项目可维护性更好,开发难度更低,性能更好,更好监控

SpringCloud体系的每一个单体项目,实际上还是SpringBoot项目

2. 项目架构发展

2.1 单体应用

所有的功能都在一个项目内,部署在一台服务器上

只要任何一个controller出现问题,整个业务流程就会崩溃

优点:

  1. 易于集中式开发,测试,部署
  2. 不容易出现重复造轮子的问题

缺点:

  1. 代码维护,重构,困难
  2. 性能出现瓶颈之后只能换更好的服务器,系统拓展性差

2.1.1 Servlet(动态web工程)

不使用maven,依赖jar包需要手动下载到WEB-INF下的lib目录下

前端与后端的一个个Servlet的doPost等方法交互,需要手动配置Servlet的路由

SSM/SSH

将servlet换成了controller

2.2 垂直应用(Mavan聚合项目,前后台分离)

水平拆分(根据业务模块拆分)和垂直拆分(普通用户和管理员用户)

2.2.1 水平拆分

存在重复造轮子的问题

但是可以按需分配流量和资源,垂直调用之间互不影响

2.3 分布式系统

抽取基础服务(登录,权限等),服务之间可以互相调用,提高了代码的复用性和开发效率

缺点:
业务耦合度变高,调用关系复杂,难以维护;
搭建集群之后,很难实现负载均衡

2.4 服务治理(SOA架构)

存在一个企业总线(BUS)将服务节点连接起来

BUS的作用:转换,解释消息和路由

BUS类似于一个计算机网络中的交换机,降低了信息转发的复杂程度

SOA主要用于微服务之前

主要的治理组件是ZooKeeper+Dubbo框架+RPC远程调用协议(TCP也能满足通信,但是代价比较高,这里用RMI即可)

缺点:配置复杂,代码复杂度高

DevOps,敏捷开发,ngnix被用于SOA中

2.5 SpringCloud微服务架构

相比于SOA,配置相当简单

将系统的业务功能划分为极小的独立微服务,每个微服务只关注于完成某个小任务。

系统中的单个微服务可以被独立部署和拓展

各个微服务之间高内聚,松耦合

微服务之间采用轻量化的通信机制(显然不是TCP)暴露接口实现通信

优化了SOA的RPC远程调用的繁琐

2.6 服务网格架构

服务网格(Service Mesh)独立于服务之外运行,是服务间通信的基础设施

包括:数据平台DP,管理配置平台CP,熔断器Circuit Breaker,服务中心Service Discovery以及边车Sidecar

所有服务通过Sidecar通信,Sidecar和网络连接共同组成了服务网格(Service Mesh)

在这里插入图片描述

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

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

相关文章

unity草体渲染方案 GPU Instaning

有一天看项目里的FrameDebug发现在森林系的场景里草体的drawcall差不多有100多 主要是因为灯光贴图,位置等不一样导致的打断合批,导致一个批次只能渲染10个左右的草体 之前有了解过unity有接口(Graphics.DrawMeshInstanced)可以把…

SpringBoot 框架学习笔记(七):Thymeleaf、拦截器 和 文件上传实现(解决了文件重名 和 按日期分目录存放问题)

1 Thymeleaf 1.1 基本介绍 (1)官方文档:Tutorial: Using Thymeleaf (2)Thymeleaf 是什么 Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,可完全替代 JSPThymeleaf 是一个 java 类库&#xf…

AnyGo(虚拟定位软件) for MacOS苹果电脑安装下载 支持最高系统 兼容M芯片

AnyGo for Mac是一款专为Mac用户设计的虚拟定位软件。它允许用户在Mac设备上模拟GPS位置,从而改变设备在各种基于位置的应用和服务中的显示位置。AnyGo提供了简单直观的操作界面,用户可以轻松地在地图上选择任意地点作为模拟位置,或者通过输入…

【平衡二叉树】数据结构—平衡二叉树

平衡二叉树(Balanced Binary Tree)是一种特殊的二叉树,它的左右子树的高度差不超过1,这样可以保证树的高度相对较低,从而使得查找、插入和删除操作的时间复杂度保持在 。 平衡二叉树的基本概念 1. 二叉树&#xff1a…

LeetCode 热题 HOT 100 (020/100)【宇宙最简单版】[创作中]

【链表】No. 0142 环形链表 II【中等】👉力扣对应题目指路 希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#…

C++ 简单学习

C简单编译 auto关键字 auto 关键字用于自动类型推导。它允许编译器自动推断变量的类型,使得代码更加简洁和易于编写,尤其是在处理复杂类型或模板编程时。使用 auto 可以避免编写冗长的类型声明,同时减少由于类型不匹配导致的编译错误 auto x…

学习vue3 三,组件基础,父子组件传值

组件基础 每一个.vue 文件都可以充当组件来使用 每一个组件都可以复用 父组件引入之后可以直接当标签使用 案例&#xff1a; App.vue <script setup lang"ts"> import BaseRefAndReactive from "./components/BaseRefAndReactive.vue";</sc…

Docker部署Node+Koa+TS+Mongo项目

Docker 简介 简而言之&#xff0c;Docker 容器轻量级、启动快、可移植&#xff0c;适合微服务架构。主要组件包括 Docker Engine、Docker 镜像、Docker 容器和 Docker Hub&#xff0c;它通过容器打包应用程序及其依赖项&#xff0c;使得应用在任何环境中都能一致运行。 这里不…

Selenium中send_keys上传图片方法以及可能失败的原因

Python Selenium是一个用于自动化浏览器操作的工具&#xff0c;可以用于模拟用户在浏览器中的各种操作。在使用Python Selenium进行自动化测试时&#xff0c;有时需要上传图片。下面是在这种情况下如何上传图片的步骤&#xff1a; 今天是主要说的是input标签&#xff0c;这种可…

基于R语言绘制GGE双标图3

参考资料&#xff1a; https://cran.r-project.org/web/packages/GGEBiplots/GGEBiplots.pdf GGE叠图法一分析品种环境互作模式的理想方法【作物学报】 GGE 双标图如何看&#xff1f;-CSDN博客 1、品种间两两比较 GGE 双标图可用于直接比较两个品种在各个试验点的表现&…

白银市场暴跌的技术分析与投资策略

一、白银市场暴跌与技术分析 周一&#xff08;8月5日&#xff09;&#xff0c;现货白银暴跌逾4.5%&#xff0c;并跌破关键的100日移动均线。FXStreet分析师Christian Borjon Valencia对银价技术走势进行了分析&#xff0c;指出银价前景转为看跌&#xff0c;技术面显示白银将进一…

探索Python并发的秘境:Greenlet库的奇幻之旅

文章目录 探索Python并发的秘境&#xff1a;Greenlet库的奇幻之旅背景&#xff1a;为何选择Greenlet&#xff1f;绿野仙踪&#xff1a;Greenlet是什么&#xff1f;安装&#xff1a;如何将Greenlet纳入囊中&#xff1f;功能探索&#xff1a;Greenlet的五大法宝场景应用&#xff…

【系统分析师】-综合知识-软件工程与项目管理

1、按照成本性态分类&#xff0c;可以分为固定成本、变动成本和混合成本。 &#xff08;1&#xff09;固定成本。管理人员的工资、办公费、固定资产折旧费、员工培训费、广告费、员工培训费、技术开发经费、办公场地及机器设备的折旧费、房屋及设备租金、管理人员的工资等。 …

提示工程:CO-STAR框架

在人工智能领域&#xff0c;尤其是大型语言模型&#xff08;LLM&#xff09;的应用中&#xff0c;提示工程已成为一项至关重要的技能。它不仅需要对技术有深刻的理解&#xff0c;还需要创造力和战略思维的结合。本文将探讨提示工程的重要性&#xff0c;详细介绍CO-STAR框架的使…

0209-开发状态切换(场景切换)功能

一、设置场景状态 1、已有方法 2、实现步骤 引用API&#xff1a;using UnityEngine.SceneManagement 写设置场景状态的方法 场景名字切换&#xff0c;需要获取mSceneName&#xff0c;他是私有的&#xff0c;给一个getset 3、问题 &#xff08;1&#xff09;同步加载 加载场…

【Web开发手礼】探索Web开发的秘密(十六)-Vue2(2)前端工程化、Element组件表格、分页

主要介绍了前端工程化Vue的开发流程、Element组件介绍以及常见的Element组件表格、分页&#xff01;&#xff01;&#xff01; 目录 前言 前端工程化 Vue项目-创建 Vue项目-目录结构 Vue项目-启动 Vue项目-配置端口 Vue项目开发流程 Element组件 快速入门 常见组件 表格…

2024杭电多校(4) 1008. 树形DNA【01Trie、哈希】

题意 给定两颗二叉树 S S S 和 T T T&#xff0c;如果对于 S S S 的某个子树 S ′ S^\prime S′&#xff0c;删除若干个&#xff08;或不删除&#xff09;其子树后&#xff0c;可以和 T T T 相同&#xff08;左子树与左子树匹配&#xff0c;右子树与右子树匹配&#xff0…

C++入门基础知识

在之前我们学习了C语言和初阶数据结构的相关知识&#xff0c;现在已经有了一定的代码能力和对数据结构也有了基础的认识&#xff0c;接下来我们将进入到新的专题当中&#xff0c;这个专题就是C。在C中我们需要花费更大的精力和更长的时间去学习这门建立在C语言基础之上的计算机…

新一代AI软件基础设施 | ZStack AIOS平台“智塔”发布

新一代 IT 基础设施&#xff0c;将从通用算力云平台转型为AI算力AIOS平台。 AI正在重构世界。正如世界是立体的&#xff0c;AI重构也正从多维度开启&#xff1a;基础设施重构&#xff0c;业务应用重构&#xff0c;交互模式重构&#xff0c;数据价值重构&#xff0c;生态系统重…

移动IP:让你的设备随时随地保持连接

随着无线网络技术的迅猛发展&#xff0c;在移动中进行数据通信已成为可能。成千上万的人正在使用移动设备畅享互联网&#xff0c;无论是在火车上、汽车内&#xff0c;还是在其他移动场景中。本文将带你了解移动IP&#xff08;Mobile IP&#xff09;的工作原理及其对网络应用的影…