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://www.pswp.cn/diannao/72767.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/72767.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/72767.shtml

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

相關文章

C++ 學生成績管理系統

一、項目背景與核心需求 成績管理系統是高校教學管理的重要工具,本系統采用C++面向對象編程實現,主要功能模塊包括: 學生信息管理(學號/姓名/3門課程成績) 成績增刪改查(CRUD)操作 數據持久化存儲 統計分析與報表生成 用戶友好交互界面 二、系統架構設計 1. 類結構設計 …

go的grpc

GRPC介紹 目錄 單體架構微服務架構問題原始的grpc 服務端客戶端原生rpc的問題 grpc的hello world 服務端客戶端 proto文件proto語法 數據類型 基本數據類型其他數據類型 編寫風格多服務 單體架構 只能對整體擴容一榮俱榮,一損俱損代碼耦合,項目的開…

1.12.信息系統的分類【ES】

專家系統(ES)技術架構深度解析 一、ES核心定義 🧠 智能決策中樞 由三大核心能力構建的領域專家模擬系統: 存儲專家級領域知識(10^4規則量級)支持不確定性推理(置信度>85%)動態…

考研數一非數競賽復習之Stolz定理求解數列極限

在非數類大學生數學競賽中,Stolz定理作為一種強大的工具,經常被用來解決和式數列極限的問題,也被譽為離散版的’洛必達’方法,它提供了一種簡潔而有效的方法,使得原本復雜繁瑣的極限計算過程變得直觀明了。本文&#x…

html播放本地音樂

本地有多個音樂文件,想用 html 逐個播放,或循環播放,并設置初始音量。 audio 在 html 中播放音樂文件用 audio 標簽: controls 啟用控制按鈕,如進度條、播放、音量、速度等。不加不顯示任何 widget。autoplay 理應啟…

DeepSeek-Manus精品課合集【附下載】

AI消息不斷,繼DeepSeek之后,又出了一個顛覆性的AI產品Manus,號稱全球第一個通用型AI。相比與DeepSeek, Manus擁有更強的自主性和執行力。 如果說DeepDeek是一個最強大腦,那么Manus就是一個完整的人! DeepS…

MySQL復習筆記

MySQL復習筆記 1.MySQL 1.1什么是數據庫 數據庫(DB, DataBase) 概念:數據倉庫,軟件,安裝在操作系統(window、linux、mac…)之上 作用:存儲數據,管理數據 1.2 數據庫分類 關系型數據庫&#…

從源到目標:深度學習中的遷移學習與領域自適應實踐

引言:數據驅動的智能時代與遷移挑戰 在深度學習快速發展的今天,模型訓練對數據量和質量的依賴成為核心瓶頸。面對新場景時,標注數據不足、數據分布差異等問題常導致模型性能驟降。遷移學習(Transfer Learning)與領域自…

【網絡】HTTP協議、HTTPS協議

HTTP與HTTPS HTTP協議概述 HTTP(超文本傳輸協議):工作在OSI頂層應用層,用于客戶端(瀏覽器)與服務器之間的通信,B/S模式 無狀態:每次請求獨立,服務器不保存客戶端狀態(通…

Jmeter使用介紹

文章目錄 前言Jmeter簡介安裝與配置JDK安裝與配置JMeter安裝與配置 打開JMeter方式一方式二 設置Jmeter語言為中文方法一(僅一次性)方法二(永久設置成中文) Jmeter文件常用目錄 元件與組件元件組件元件的作用域元件的執行順序第一個案例添加線程組添加 H…

【NLP 32、文本匹配任務 —— 深度學習】

大劫大難以后,人不該失去銳氣,不該失去熱度,你鎮定了卻依舊燃燒,你平靜了卻依舊浩蕩,致那個從絕望中走出來的自己,共勉 —— 25.1.31 使用深度學習在文本匹配任務上主要有兩種方式:① 表示型 ②…

發展史 | 深度學習 / 云計算

注:本文為來自 csdn 不錯的“深度學習 / 云計算發展史 ” 相關文章合輯。 對原文,略作重排。 深度學習發展史(1943-2024 編年體)(The History of Deep Learning) Hefin_H 已于 2024-05-23 15:54:45 修改 …

通領科技沖刺北交所

高質量增長奔赴產業新征程 日前,通領科技已正式啟動在北交所的 IPO 進程,期望借助資本市場的力量,加速技術升級,推動全球化戰略布局。這一舉措不僅展現了中國汽車零部件企業的強大實力,也預示著行業轉型升級的新突破。…

TCP/IP 5層協議簇:網絡層(ICMP協議)

1. TCP/IP 5層協議簇 如下: 和ip協議有關的才有ip頭 2. ICMP 協議 ICMP協議沒有端口號,因為不去上層,上層協議采用端口號

RISC-V匯編學習(三)—— RV指令集

有了前兩節對于RISC-V匯編、寄存器、匯編語法等的認識,本節開始介紹RISC-V指令集和偽指令。 前面說了RISC-V的模塊化特點,是以RV32I為作為ISA的核心模塊,其他都是要基于此為基礎,可以這樣認為:RISC-V ISA 基本整數指…

C語言 —— 愿此世如黃金般輝煌 - 進制轉換與操作符詳解

目錄 1. 操作符的分類 2. ?進制和進制轉換 2.1 2進制轉10進制 2.2 10進制轉2進制 2.3 2進制轉8進制 2.4 2進制轉16進制 3. 原碼、反碼、補碼 4. 移位操作符 4.1 左移操作符 4.2 右移操作符 5. 位操作符:&、|、^、~ 5.1 & 按位與 5.2 | 按位或 …

docker1

前言 技術架構 單機架構 應用數據分離架構 應用服務集群架構 讀寫分離/主從分離架構 寫入主的時候,要同步Mysql從的數據才可以 冷熱分離架構 寫的時候要寫入主和緩存數據庫 讀的時候先去緩存看有沒有,沒有的話就去從數據庫讀數據 主要就是看這個數據是…

Spring Boot整合ArangoDB教程

精心整理了最新的面試資料和簡歷模板,有需要的可以自行獲取 點擊前往百度網盤獲取 點擊前往夸克網盤獲取 一、環境準備 JDK 17Maven 3.8Spring Boot 3.2ArangoDB 3.11(本地安裝或Docker運行) Docker啟動ArangoDB docker run -d --name ar…

從離散迭代到連續 常微分方程(Ordinary Differential Equation, ODE):梯度流

從離散迭代到連續 ODE:梯度下降與梯度流的奇妙聯系 在機器學習和優化領域,我們常常使用離散的迭代算法(如梯度下降)來求解目標函數的最優解。然而,你是否想過這些離散步驟背后可能隱藏著連續的動態?常微分…

常見的 Git 命令

基礎配置和信息查詢 (Setup and Information) git config --global user.name “Your Name”: 配置全局用戶名,用于 Git 提交記錄。 git config --global user.email “your.emailexample.com”: 配置全局用戶郵箱,同樣用于 Git 提交記錄。 git confi…