應用架構——集群、分布式、微服務的概念及異同

一、什么是集群?
????????集群是指將多臺服務器集中在一起, 每臺服務器都實現相同的業務,做相同的事;但是每臺服務器并不是缺 一不可,存在的主要作用是緩解并發能力和單點故障轉移問題。
集群主要具有以下特征:
(1)、 伸縮性
????????在一些大系統中,預測最終用戶的數量和行為是非常困難的,伸縮性是指系統使用不斷增長的用戶數的能?力;隨著用戶數的增長,我們只需將新的服務器加入集群中即可,對于用戶來看,服務無論從連續性還是性能上都幾乎沒有變化,好像系統在不知不覺中完成了升級。
(2)、 高可用性
????????單一服務器的解決方案并不是一個健壯方式,因為容易出現單點失效,在某些關鍵的應用程序是不能容忍 的,哪怕幾分鐘的死機;高可用性集群的出現就是為了使集群的整體服務盡可能可用,以便考慮軟硬件的易錯性;如果高可用性集群中的主節點發生了故障,那么這段時間內由次節點代替它。
(3)、負載均衡
????????負載均衡集群為企業需求提供了更實用的系統,該系統使負載可以在計算機集群中盡可能平均地分攤處理,該負載可能是需要均衡的應用程序處理負載或網絡流量負載;這樣的系統非常適合運行同一組應用程序的大量用戶;每個節點都可以處理一部分負載,并且可以在節點之間動態分配負載,以實現平衡。
(4)、高性能
????????這種設計用來開發并性編程應用模式,以解決復雜的科學問題,并行計算是相對于串行計算來說的,并行計算能力的目的是用來提高計算速度。
二、什么是分布式?
????????分布式服務是指多臺服務器集中在一起,服務是分散部署在不同的機器上; 每臺機器都實現總體中的不同業務,做不同的事情;一個服務可能負責幾個功能,是一種面向SOA的架構;各分開部署的部分彼此通過各種通訊協議交互信息,并且每臺服務器都缺一不可,如果某臺服務器故障,則部分功能缺失,或者導致整體無法運行;
????????分布式存在的主要作用是大幅度的提高效率,緩解服務器的訪問和存儲壓力。
????????將一個大的系統劃分為多個業務模塊,業務模塊分別部署到不同的機器上,各個業務模塊之間通過接口進行數據交互。
三、什么是微服務?
????????微服務的概念和分布式比較相似,微服務是一種架構風格;簡單來說微服務就是很小的服務,小到一個服務只對應一個單一的功能;每個微服務僅關注于完成一件任務并很好地完成該任務,這個服務可以單獨部署運行;
????????各個服務之間是松耦合的,服務之間可以通過RPC來相互交互;微服務與分布式還有一點區別是: 微服務的應用不一定是分散在單個服務器上,它也可以是同一個服務器。
????????微服務相比分布式服務來說,它的粒度更小,服務之間耦合度更低,敏捷性也更高;但服務微服務化后帶來的挑戰也是顯而易見的,例如服務粒度小、數量大、后期運維難度增大等。
四、集群、分布式、微服務的異同及聯系
(1)分布式是以縮短單個任務的執行時間來提升效率,而集群則是通過提高單位時間內執行的任務數來提升效率;但 分布式需要做好事務管理。
(2)集群模式是不同服務器部署同一套服務,對外提供服務,實現服務的負載均衡;區別集群的方式是根據部署多臺服務器業務是否相同,分布式中的每個節點都可以做集群;而集群并不一定就是分布式的。
????????注意:集群需要做好Session共享,也就是接口要具有無狀態特征,確保在不同服務器切換的過程中不會因為沒有獲取到Session而引起服務終止。
(3)分布式與微服務的架構很相似,只是部署方式不一樣而已;生產環境下的微服務肯定是分布式部署的,分布式部署的應用不一定是微服務架構的。
(4)在設計與開發中我們可以將分布式與集群的分開嗎?
????????分布式的主要功能是將我們的系統模塊化,將系統進行解耦,方便維護和開發;但并不能解決系統的并發性和高可用性問題;而集群恰好彌補了分布式的缺陷,一方面可以解決或者說改善系統的并發問題,另一方可以解決服務器如果出現宕機后,系統仍然可以正常運轉;好的設計應該是分布式和集群相結合,具體實現就是業務拆分成很多子業務,然后對每個子業務進行集群部署。

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

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

相關文章

JAVA使用POI向doc加入圖片

JAVA使用POI向doc加入圖片 前言 剛來一個需求需要導出一個word文檔,文檔內是系統某個界面的各種數據圖表,以圖片的方式插入后導出。一番查閱資料于是乎著手開始編寫簡化demo,有關參考poi的文檔查閱 Apache POI Word(docx) 入門示例教程 網上大多數是XXX…

el-table-column 添加 class類

正常添加class 發現沒有效果 class"customClass" 發現并沒有添加上去 看了一下官網發現 class-name 可以實現 第一步: :class-name"customClass" 第二步 : customClass: custom-column-class, 然后就發現可以了

Qt簡介、工程文件分離、創建Qt工程、Qt的幫助文檔

QT 簡介 core:核心模塊,非圖形的接口類,為其它模塊提供支持 gui:圖形用戶接口,qt5之前 widgets:圖形界面相關的類模塊 qt5之后的 database:數據庫模塊 network:網絡模塊 QT 特性 開…

IntelliJ IDEA使用Eval Reset

文章目錄 IntelliJ IDEA使用Eval Reset說明具體操作 IntelliJ IDEA使用Eval Reset 說明 操作系統:windows10 版本:2020.1 IntelliJ IDEA安裝可查看:安裝教程 具體操作 添加,輸入網址 https://plugins.zhile.io然后搜索“IDE E…

IntelliJ IDEA安裝

文章目錄 IntelliJ IDEA安裝說明下載執行安裝 IntelliJ IDEA安裝 說明 操作系統:windows10 版本:2020.1 下載 官網地址 執行安裝

奇點云2023數智科技大會來了,“雙12”直播見!

企業數字化進程深入的同時,也在越來越多的新問題中“越陷越深”: 數據暴漲,作業量和分析維度不同以往,即便加了機器,仍然一查就崩; 終于搞定新增渠道數據的OneID融合,又出現幾個渠道要變更&…

自動定量包裝機市場研究: 2023年行業發展潛力分析

中國包裝機械業取得了快速發展,但也出現了一些低水平重復建設現象。據有關資料顯示,與工業發達國家相比,中國食品和包裝機械產品品種缺乏25%-30%,技術水平落后15-25年。我國包裝專用設備制造行業規模以上企業有319家,主…

Vue3實現一個拾色器功能

? <template><div class"color"><button v-if"hasEyeDrop" click"nativePick">點擊取色</button><input v-else type"color" input"nativePick" v-model"selectedColor" /><p&…

Markdown從入門到精通

Markdown從入門到精通 文章目錄 Markdown從入門到精通前言一、Markdown是什么二、Markdown優點三、Markdown的基本語法3.1 標題3.2 字體3.3 換行3.4 引用3.5 鏈接3.6 圖片3.7 列表3.8 分割線3.9 刪除線3.10 下劃線3.11 代碼塊3.12 表格3.13 腳注3.14 特殊符號 四、Markdown的高…

php爬蟲規則與robots.txt講解

在進行網頁爬蟲時&#xff0c;有一些規則需要遵守&#xff0c;以避免違反法律&#xff0c;侵犯網站隱私和版權&#xff0c;以及造成不必要的麻煩。以下是一些常見的PHP爬蟲規則&#xff1a; 1. 尊重網站的使用條款&#xff1a;在開始爬取之前&#xff0c;請確保你閱讀并理解了…

2024黑龍江省職業院校技能大賽信息安全管理與評估樣題第二三階段

2024黑龍江省職業院校技能大賽暨國賽選拔賽 "信息安全管理與評估"樣題 *第二階段競賽項目試題* 本文件為信息安全管理與評估項目競賽-第二階段試題&#xff0c;第二階段內容包括&#xff1a;網絡安全事件響應、數字取證調查和應用程序安全。 極安云科專注技能競賽…

mysql 快捷登陸

要將 MySQL 的登錄命令添加到環境變量中并為其創建別名&#xff0c;可以按照以下步驟進行操作&#xff1a; 1. 打開終端并編輯 /etc/profile 文件&#xff08;使用所有用戶的全局設置&#xff09; vim /etc/profile 2. 在文件的末尾添加以下行來設置環境變量和別名 # 將 &q…

openharmony 開發環境搭建和系統應用編譯傻瓜教程

一、DevEco Studio 安裝 當前下載版本有兩個&#xff0c;由于低版本配置會有各種問題&#xff0c;我選擇高版本安裝 低版本下載鏈接 HUAWEI DevEco Studio和SDK下載和升級 | HarmonyOS開發者 高版本下載鏈接 OpenAtom OpenHarmony 解壓后安裝 雙擊安裝 安裝配置 二、創建測…

GO設計模式——12、外觀模式(結構型)

目錄 外觀模式&#xff08;Facade Pattern&#xff09; 外觀模式的核心角色&#xff1a; 優缺點 使用場景 代碼實現 外觀模式&#xff08;Facade Pattern&#xff09; 外觀模式&#xff08;Facade Pattern&#xff09;又叫作門面模式&#xff0c;是一種通過為多個復雜的子…

IntelliJ IDEA的下載安裝配置步驟詳解

引言 IntelliJ IDEA 是一款功能強大的集成開發環境&#xff0c;它具有許多優勢&#xff0c;適用于各種開發過程。本文將介紹 IDEA 的主要優勢&#xff0c;并提供詳細的安裝配置步驟。 介紹 IntelliJ IDEA&#xff08;以下簡稱 IDEA&#xff09;之所以被廣泛使用&#xff0c;…

docker鏡像倉庫hub.docker.com無法訪問

docker鏡像倉庫hub.docker.com無法訪問 文章主要內容&#xff1a; 介紹dockerhub為什么無法訪問解決辦法 1 介紹dockerhub為什么無法訪問 最近許多群友都詢問為什么無法訪問Docker鏡像倉庫&#xff0c;于是我也嘗試去訪問&#xff0c;結果果然無法訪問。 大家的第一反應就是…

HDFS常見題

1. 談談什么是Hadoop? Hadoop是一個開源軟件框架&#xff0c;用于存儲大量數據&#xff0c;并發計算/查詢節點的集群上的數據。   Hadoop包括以下內容&#xff1a;     HDFS(Hadoop Distributed File System)&#xff1a;Hadoop分布式文件存儲系統。     MapReduce&…

【華為OD題庫-084】最長連續子序列-Java

題目 有N個正整數組成的一個序列。給定整數sum&#xff0c;求長度最長的連續子序列&#xff0c;使他們的和等于sum&#xff0c;返回此子序列的長度。如果沒有滿足要求的序列&#xff0c;返回-1。 輸入描述 第一行輸入是:N個正整數組成的一個序列 第二行輸入是:給定整數sum 輸出…

nodejs fs模塊

是什么&#xff1a;nodejs提供的操作文件的模塊 fs.readFile() fs.writeFile() js中使用 fs模塊操作文件&#xff0c;先導入fs const fsrequire(fs)fs.readFile() 讀取指定文件的內容 語法格式 fs.readFile(path[, options], callback) path&#xff1a;必選參數&#x…

參數是Id,但要顯示接口中的id對應的名稱

當下拉數據是個接口&#xff0c;且后臺表單和列表中給的參數是Id,但要顯示接口中的id對應的名稱 先在data中定義要顯示的名稱 productName 1.form下拉 <el-form-item label"產品名稱" prop"productId"><el-select v-model"queryParams.produ…