Spring Cloud 概述

目錄

?編輯一、認識微服務

1、單體架構

2、集群和分布式架構

3、微服務架構

二、Spring Cloud

1、什么是 Spring Cloud

2、Spring Cloud 版本

3、Spring Cloud 的實現方案

Spring Cloud Netflix

?編輯Spring Cloud Alibaba


一、認識微服務

1、單體架構

很多創業公司早期或者傳統企業會把業務的所有功能實現都打包在?個項目, 這就是 單體架構 .
業務的所有功能實現都打包在?個war包或者Jar包中, 這種?式就稱為 單體架構

單體架構開發和部署都比較簡單,一個項目包含了所有的功能,省去了多個項目之間的交互和調用消耗,直接部署在一個服務器即可。


2、集群和分布式架構

單體架構可能會出現的問題:

1、后端服務器的壓力越來越大,負載越來越高,甚至出現無法訪問的情況

2、業務場景逐漸復雜,為了滿足用戶的需求,單體應用會越來越大,業務代碼之間的耦合度也越來越高,任何一個問題都需要整個項目重新構建、發布

3、一個微小的問題可能會導致整個應用掛掉

如何解決單體架構的問題:

我們可以從橫向和縱向兩個角度來解決問題

橫向:假如目前只有一臺機器,用戶卻越來越多了,此時我們可以通過添加服務器來進行解決

縱向:業務需求越來越大了,代碼之間耦合度越來越搞,此時我們可以把一整塊業務劃分成不通風的模塊

假設我們最開始有一臺機器,這一臺機器可以承擔 1000 個用戶,后來發展成了 10000 個用戶

橫向:擴容機器,將一臺機器擴容成 10 臺機器,每個機器負責 10 個用戶【集群】

縱向:按照功能進行劃分,將一個大的項目拆分成多個小項目之后,項目與項目之間通過接口進行交互?【分布式】

集群:是將?個系統完整的部署到多個服務器上, 每個服務器都能提供系統的所有服務, 多個
服務器通過負載均衡調度完成任務. 每個服務器稱為集群的節點(node)

分布式:是將?個系統拆分為多個子系統,多個子系統部署在多個服務器上,多個服務器上的子系統協同合作完成?個特定任務.

例如:有一個餐館,剛開業的時候只有一個廚師,該廚師只負責做飯相關的工作

當餐館生意變好之后,一名廚師便忙不過來了

橫向:招聘一個廚師,這兩個廚師都可以獨立做飯

縱向:將廚師的工作分為多個細小的工作,如:切菜,洗菜,炒菜。再招聘助理,將細小的工作分配給助理完成。

集群和分布式之間的區別與聯系:

1. 從概念上. 集群是多個計算機做同樣的事, 分布式是多個計算機做不同的事(集群中的計算機可以相互替代,而分布式中的計算機不能相互替代)

2. 從功能上. 集群的每一個節點功能是相同的, 并且可以替代的. 分布式也是多個節點組成的系統, 但是每個節點完成的業務是不同的, ?個節點出現問題, 這個業務就不可訪問了.

3. 從關系上. 分布式和集群在實踐中, 很多時候是互相配合使用的. 比如分布式的某一個節點, 可能由一個集群來代替. 分布式架構大多是建立在集群上的. 所以實際的分布式架構設計中并不會把分布式和集群單獨區分, 而是統稱: 分布式架構.

4、分布式的節點可能是集群


3、微服務架構

按照業務對項目進行拆分之后,會有一些重復的功能開發。

在分布式結構下,當部署的服務越來越多,重復的代碼就會越來越多,服務之間的調用關系越來越復雜。

微服務就是將一些通用的,會被多個上層服務調用的共享業務,提取成獨立的基礎服務,組成一個個微小的服務

微服務是沒有明確的邊界的

但是我們通常認為:一個服務只對應一個單一的功能,只做一件事情,且這個服務可以單獨部署的服務是微服務?

微服務之間使用 REST 和 RPC 協議進行通信

微服務架構其實就是分布式架構的擴展,微服務架構下拆分粒度更小,服務更獨立。

分布式架構側重于壓力的分散, 強調的是服務的分散化. 微服務側重于能力的分散, 更強調服務的專業化和精細分工.

從實踐的角度來看, 微服務架構通常是分布式服務架構, 反之則未必成立.

例如,在工作中會將崗位進行劃分:前端,后端,運維等

分布式:劃分了就可以了

微服務:不僅僅劃分,還拆分的很細,比如后端開發還可以細分為:系統開發,數據開發等等

所以,微服務通常意味著需要解決分布式架構的各種難題

架構的發展:

那么實際開發中,應該采用哪種架構模式呢

所有的架構都是為了更好的服務產品,所以只需要選擇最合適的即可

微服務的優勢:

易開發和維護. 每個微服務負責的業務比較清晰, 體量小, 開發和維護成本降低.

容錯性高. ?個服務發生故障, 可以使故障隔離在單個服務中, 不影響整體服務故障.

擴展性好. 每個服務都是獨立運行的, 我們可以結合項目實際情況進行擴展, 按需伸縮.

技術選型靈活. 每個微服務都是單獨的團隊來運維, 可以根據業務特點和團隊特點, 選擇適合的技術
棧.

相應的,微服務也會面臨一些挑戰


二、Spring Cloud

1、什么是 Spring Cloud

Spring Cloud 的官網: spring.io

Spring Cloud 包含了很多的工具,這些工具能夠讓我們在分布式系統中進行比較快速的開發,Spring Cloud 提供的這些工具,也可以幫助我們解決在分布式微服務中的一系列問題。

簡單來說, Spring Cloud 就是分布式微服務架構的?站式解決方案, 是微服務架構落地的多種技術的集合.?


2、Spring Cloud 版本

我們可以在官網上查看 SpringBoot 版本對應的 SpringCloud 版本

假設我們有一個項目,Spring Boot 的版本是 2.7.x,那么我們 Spring Cloud 版本應該使用 2021.0.x


3、Spring Cloud 的實現方案

Spring Cloud Netflix

Spring Cloud Netflix 是 Netflix OSS(Netflix Open Source Software)在 Spring Cloud 規范下的實現.
包含的組件及其主要功能?致如下:?


Spring Cloud Alibaba

Spring Cloud Alibaba 是阿?巴巴集團下的開源組件和云產品在Spring Cloud規范下的實現

官方網站:? Spring Cloud Alibaba 是什么 | https://sca.aliyun.com

如果說Spring Cloud Netflix 是 Spring Cloud 的第一代實現, 那么Spring Cloud Alibaba 也可以看做是Spring Cloud 的第?代實現, 主要由 Nacos、Sentinel、Seata 等組件組成.

黃色:進入維護狀態的主鍵

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/40485.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/40485.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/40485.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【開發筆記】如何用正則匹配出百度云盤分享鏈接的提取碼和鏈接?

用Wordpress做下載站,需要復制網盤鏈接到后臺的文章發布自定義字段,然后我不想每次手動拆分鏈接和提取碼分別到兩個input,就想在后臺粘帖時候實現拆分它。 $link 鏈接:https://pan.baidu.com/s/16y9Z5mTSE6gewStGDNndNQ 提取碼…

【STM32】在標準庫中使用DMA

1.MDA簡介 DMA全稱Direct Memory Access,直接存儲區訪問。 DMA傳輸將數據從一個地址空間復制到另一個地址空間。當CPU初始化這個傳輸動作,傳輸動作本身是由DMA控制器來實現和完成的。DMA傳輸方式無需CPU直接控制傳輸,也沒有中斷處理方式那樣保留現場和…

融云上線 HarmonyOS NEXT 版 SDK,全面適配「純血鴻蒙」生態

6 月 21 日,“2024 華為開發者大會”正式發布使用自研內核的原生鴻蒙系統 HarmonyOS NEXT,即 “純血鴻蒙”。 同時,華為宣布開放“鴻蒙生態伙伴 SDK 市場”,甄選各類優質、安全的 SDK 加入聚合平臺,助力各行業開發者輕…

Oracle如何切換temp表空間以及需要注意的點

Oracle如何切換temp表空間以及需要注意的點 昨天有套庫報/u01的磁盤90%使用率報警了,無法通過LVM在原盤基礎上擴容,計劃新增加磁盤并將能在線遷移的相關數據庫文件遷移走。 其中,對于temp表空間的處理,我采取的方法實際和undo差不…

【linux】網絡基礎(3)——tcp協議

文章目錄 TCP協議概括TCP頭部格式TCP連接管理建立連接(三次握手)數據傳輸確認應答機制捎帶應答 滑動窗口丟包問題 擁塞控制延時應達 終止連接(四次揮手) TCP協議概括 TCP是一個面向連接的協議,在傳輸數據之前需要建立連…

醫療器械進銷存軟件 專業合規的醫療公司器械出入庫管理軟件

財務管理:財務檔案統一管理,有利于科學管理企業資金 財務管理:發票關聯業務單據,業財融合,加速財務數字化轉型 財務管理:提供收付款功能,加快企業應收賬款的回收,降低付款的資金浮…

小白輕松使用maven

一、maven 下載 下載地址 maven 下載官方地址 https://maven.apache.org/download.cgi,黃色壓縮包。 2. 下載解壓 cmd 解壓命令 tar -zxvf apache-maven-3.9.8-bin.tar.gz二、maven 配置 settings.xml 文件配置 鏡像配置: 國內鏡像配置用于下載資源…

《操作系統真象還原》學習筆記:第1章 部署工作環境

**提示:**這篇文章是根據學長提供的教程《操作系統真象還原》第一章 部署工作環境來完成的,我按照學長給的教程一步一步做下來,再結合《操作系統真象還原》這本書,對實驗環境進行了配置。以下是我按照教程進行搭建的記錄&#xff…

[Vue3 + TS + Vite] CSS穿透

以 Element-Plus UI 中的 <el-drawer> 為例 方法一 Template中 <el-drawer>CSS中 <style lang"scss" scoped> :deep(.el-drawer__header) {margin: 0px 0px 0px 0px; /*上 右 下 左*/box-sizing: border-box;padding: 0px 0px 0px 0px; /*上 右…

【Ubuntu】詳細說說Parallels DeskTop安裝和使用Ubuntu系統

希望文章能給到你啟發和靈感~ 如果覺得文章對你有幫助的話,點贊 + 關注+ 收藏 支持一下博主吧~ 閱讀指南 開篇說明一、基礎環境說明1.1 硬件環境1.2 軟件環境二、Ubuntu系統的使用2.1 系統的下載2.2 系統的安裝2.3 安裝桌面版(可選)2.3.1 安裝/更新apt2.3.2 安裝桌面版2.3…

【JNDI注入利用工具】JNDIExploit v1.1

# 簡介 JNDIExploit一款用于 JNDI注入 利用的工具&#xff0c;大量參考/引用了 Rogue JNDI 項目的代碼&#xff0c;集成了JDNI注入格式&#xff0c;能夠更加方便的開啟服務端后直接利用&#xff0c;支持反彈Shell、命令執行、直接植入內存shell等&#xff0c;并集成了常見的by…

7.4、空指針和野指針

空指針 #include <iostream> using namespace std;int main() {//空指針//1、空指針用于給變量進行初始化int * p NULL;//2、空指針是不可以進行訪問的//0-255之間的內存編號是系統占用的&#xff0c;因此不可以訪問//cout<<*p<<endl;system("pause&q…

算法訓練 | 圖論Part3 | 101.孤島的總面積、102.沉沒孤島、103.水流問題、104.建造最大島嶼

目錄 101.孤島的總面積 圖論法 102.沉沒孤島 圖論法 103.水流問題 圖論法 104.建造最大島嶼 圖論法 101.孤島的總面積 題目鏈接&#xff1a;101. 孤島的總面積 文章講解&#xff1a;代碼隨想錄 圖論法 代碼一&#xff1a;深搜 #include <iostream> #includ…

在Centos7上安裝PostgreSQL16的詳細步驟

文章目錄 環境一、準備二、postgresql下載方法一&#xff1a;wget下載方法二&#xff1a;下載壓縮包解壓 三、創建用戶組、用戶四、創建數據主目錄五、配置環境變量六、initdb初使化數據庫七、配置服務八、設置開機自啟動九、設置防火墻十、啟動數據庫服務 環境 CPU: 4 核心或以…

Python爬蟲系列-讓爬蟲自己寫爬蟲(半自動化,代替人工寫爬蟲)

現在的PC、手機客戶端等終端設備大量使用了網頁前后端技術&#xff0c;另外主流的網站也會經常會更新&#xff0c;導致以前一個月更新一次爬蟲代碼&#xff0c;變成了天天需要更新代碼&#xff0c;所以自動化爬蟲技術在當前就顯得特別重要&#xff0c;最近我也是在多次更新某個…

養老院生活管理系統

摘要 隨著全球范圍內人口老齡化趨勢的日益加劇&#xff0c;養老院作為老年人生活的重要場所&#xff0c;其生活管理問題也顯得愈發突出和重要。為了滿足養老院在日常生活管理、老人健康監護、服務人員管理等多方面的需求&#xff0c;提高管理效率和服務質量。決定設計并實現了…

用一百場線下講座科普充電樁 能效電氣做到了

在新能源汽車產業蓬勃發展的今天,充電樁作為產業鏈的重要環節,其建設與發展成為推動行業進步的關鍵。在這一背景下,能效電氣憑借其卓越的技術實力和前瞻性的市場布局,成為了新能源充電樁行業的佼佼者。 為了進一步推動新能源產業的發展,普及充電樁知識,能效電氣精心策劃并舉辦…

C語言數據類型和變量(二)

目錄 1.數據類型的取值范圍 2.變量 2.1 變量的創建 2.2 變量的分類 2.3全局變量和局部變量在內存中的存儲?編輯 3. 算術操作符&#xff1a; 、 - 、* 、/ 、% 3.1 和 - 3.2 * 3.3 / 3.4 % 1.數據類型的取值范圍 每一種數據類型有自己的取值范圍&#xff0c;也就是存…

mapper.xml 文件對應的 Dao 接口原理

在 Java 框架如 MyBatis 中&#xff0c;Mapper.xml 文件是用于定義 SQL 查詢的配置文件&#xff0c;而對應的 Dao 接口&#xff08;Mapper 接口&#xff09;則提供了與 XML 文件中的 SQL 查詢相對應的方法。這種設計模式使得 Java 代碼與 SQL 語句解耦&#xff0c;提高了代碼的…

盤點亞馬遜5大實用選品思路(圖文講解+選品案例)

一、7天藍海選品法 市場上很多工具一般都是近30天的跨境商品數據&#xff0c;而店雷達亞馬遜選品&#xff0c;可以篩選出上架近7天的亞馬遜產品&#xff0c;避免在已經市場相對飽和的賽道&#xff0c;中小賣家還要擠破頭去搶蛋糕。我們更應該學會在市場反饋好的新品中找到出單…