第30周Java分布式入門 分布式基礎

分布式基礎課程筆記

一、什么是分布式?

1. 權威定義

分布式系統定義為:“利用物理架構形成多個自治的處理元素,不共享主內存,通過發送消息合作”。

2. 核心解釋

  • 物理架構與處理元素
    🌟 多臺獨立服務器/電腦:類比不同員工各司其職。

  • 不共享主內存
    🌟 各服務器內存獨立:如同員工各自記賬本不共享。

  • 通過消息合作
    🌟 只能通過消息傳遞協作:類似員工間用對講機溝通。

3. 架構演進案例(老板開店故事)

  • 單體架構
    小賣店模式:老板包攬所有工作(收銀+補貨+清潔)。

  • 集群架構
    分店模式:老板和老板娘各開相同功能的店鋪(能力未拆分)。

  • 分布式架構
    專業分工模式:雇傭收銀員/理貨員/保潔員(能力拆分+合作)。

二、關鍵架構對比

單體架構集群架構分布式架構
特點所有功能集中完整功能復制功能拆分+合作
類比單人小賣店連鎖便利店專業團隊分工合作
優勢開發簡單高可用性靈活擴展
劣勢單點故障風險高資源浪費系統復雜度高

分布式架構核心知識筆記

一、分布式架構的作用與演進

1. 單體應用的核心痛點

  • 🚫 速度變慢:編譯部署像等待老式打印機(10分鐘起),新人入職配置環境如同拼裝樂高積木。
  • 🚫 耦合嚴重:代碼像房間里的亂接電線(改一處可能燒毀整個系統)。
  • 🚫 技術債務:歷史代碼如同衣柜里的舊衣服(占地方卻不敢扔)。
  • 🚫 協作困難:合并代碼堪比多人同時編輯Excel表格(沖突頻繁)。

2. 分布式架構的四大優勢

優勢維度具體表現生活化案例
?開發效率微服務獨立開發如同快餐店后廚分工漢堡組、薯條組互不干擾
🔧技術升級更新組件像更換手機APP單獨更新微信不影響支付寶
🛡?系統可用性服務隔離如同輪船防水艙設計一個船艙進水不影響其他艙
💰成本優化資源調配像共享充電寶部署商場多放,小區少放

二、架構對比分析表(單體 vs 分布式)

對比維度單體架構分布式架構典型誤解澄清
🏃啟動速度整裝待發的裝甲車(全量啟動)特種部隊分散部署(獨立啟動)分布式整體協調時間常被忽視
👥團隊規模家庭作坊(3-5人)跨國公司(百人級)團隊規模決定架構選擇
🛠?維護成本考古式開發(不敢刪舊代碼)模塊化維護(獨立升級)分布式初始成本更高但長期收益大
💻代碼清晰度意大利面式代碼API契約式開發分布式不代表絕對規范
🚨故障影響多米諾骨牌效應蜂巢式隔離分布式故障排查更復雜
🎨設計難度簡筆畫清明上河圖需要架構師全局視野

分布式系統核心理論 CAP定理

一、CAP定理核心概念

1. 三要素定義

  • **一致性(Consistency)**🌟
    所有節點同時看到相同數據。如:節點1寫入X=100后,節點2讀取必須也是100。

  • **可用性(Availability)**🌟
    每次請求都能獲得有效響應。如:購物網站必須即時顯示商品庫存(即使數據可能不是最新)。

  • **分區容錯性(Partition Tolerance)**🌟
    網絡故障時系統仍可運行。如:跨國服務器集群能容忍中美海底光纜中斷。

2. 鐵三角悖論 🚨

數學證明三者不可兼得:網絡分區必然存在 → 必須在C/A中二選一。

二、實踐應用案例

1. 典型場景選擇

業務類型選擇方案典型代表犧牲項
內容分發網絡AP阿里云CDN一致性
銀行轉賬系統CP支付寶余額寶可用性
實時通訊軟件AP微信消息漫游一致性

集群、分布式與微服務核心知識點總結

一、核心概念對比

1. 集群 vs 分布式

維度集群分布式
部署內容同一項目的多個副本不同項目/模塊部署
核心目的分散壓力、負載均衡多節點協同工作
協作方式無需業務協作必須跨節點通信協作
🌟生活案例麥當勞10個收銀臺同時服務快遞公司分揀中心+配送站協同工作

2. 集群 vs 微服務

維度集群微服務
關注點部署方式架構設計
能力特征相同能力復制獨立業務能力
擴展方式水平擴展垂直拆分
🌟生活案例銀行開設5個相同業務的營業廳醫院分設掛號、檢驗、藥房部門

3. 微服務 vs 分布式

維度微服務分布式
本質屬性架構設計方法論系統部署方案
拆分維度按業務垂直拆分按功能/層次拆分
必然關系微服務必須分布式部署分布式不一定用微服務架構
🌟生活案例電商拆分成用戶/訂單/商品服務網站前端+API服務分開部署

二、分布式核心理論

1. CAP定理

維度說明選擇策略
C一致性所有節點數據實時一致金融交易系統首選(如銀行轉賬)
A可用性每個請求都能獲得響應社交平臺首選(如朋友圈點贊)
P分區容錯允許網絡分區故障(必須保證)必須滿足的基礎要求
🌟經典組合CP組合(如ZooKeeper)AP組合(如Eureka)

2. 分布式 vs 單體架構

? 分布式優勢

  • 故障隔離:單點故障不影響全局(如支付服務宕機不影響用戶注冊)。
  • 彈性擴展:按需擴展特定服務(如促銷時單獨擴容秒殺服務)。
  • 技術異構:不同服務使用不同技術棧(如推薦服務用Python,交易服務用Java)。

?? 單體痛點

  • 牽一發而動全身:修改用戶模塊可能影響訂單功能。
  • 擴展困難:必須整體擴容,即使只有部分模塊負載高。
  • 技術棧固化:所有模塊必須使用相同技術體系。

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

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

相關文章

Vuex狀態管理

Vuex Vuex是一個專為Vue.js應用程序開發的狀態管理模式。它采用集中式管理應用的所有組件狀態,并以相應的規則保證狀態以一種可預測的方式發生變化。(類似于在前端的數據庫,這里的數據存儲在內存當中) 一、安裝并配置 在項目的…

從代碼學習深度學習 - 使用塊的網絡(VGG)PyTorch版

文章目錄 前言一、VGG網絡簡介1.1 VGG的核心特點1.2 VGG的典型結構1.3 優點與局限性1.4 本文的實現目標二、搭建VGG網絡2.1 數據準備2.2 定義VGG塊2.3 構建VGG網絡2.4 輔助工具2.4.1 計時器和累加器2.4.2 準確率計算2.4.3 可視化工具2.5 訓練模型2.6 運行實驗總結前言 深度學習…

Baklib激活企業知識管理新動能

Baklib核心技術架構解析 Baklib的底層架構以模塊化設計為核心,融合知識中臺的核心理念,通過分布式存儲引擎與智能語義分析系統構建三層技術體系。數據層采用多源異構數據接入協議,支持文檔、音視頻、代碼片段等非結構化數據的實時解析與分類…

小智機器人中的部分關鍵函數,FreeRTOS中`xEventGroupWaitBits`函數的詳細解析

以下是對FreeRTOS中xEventGroupWaitBits函數的詳細解析: 函數功能 xEventGroupWaitBits用于在事件組中等待指定的位被設置。它可以配置為等待任意一個位或所有位,并支持超時機制。 注意:該函數不能在中斷中調用。 函數原型 EventBits_t xEv…

關注分離(Separation of Concerns)在前端開發中的實踐演進:從 XMLHttpRequest 到 Fetch API

關注分離(Separation of Concerns)在前端開發中的實踐演進:從 XMLHttpRequest 到 Fetch API 一、關注分離的核心價值 關注分離(SoC)是軟件工程領域的重要設計原則,強調將系統分解為不同維度的功能模塊&am…

C之(16)scan-build與clang-tidy使用

C之(16)scan-build與clang-tidy使用 Author: Once Day Date: 2025年3月29日 一位熱衷于Linux學習和開發的菜鳥,試圖譜寫一場冒險之旅,也許終點只是一場白日夢… 漫漫長路,有人對你微笑過嘛… 全系列文章可參考專欄: Linux實踐記錄_Once_da…

在 Vue 項目中快速集成 Vant 組件庫

目錄 引言一、找到 src 下的App.js 寫入代碼。二、安裝Vant三、解決 polyfill 問題四、查看依賴五、配置webpack六、引入 Vant七、在組件中使用 Vant八、在瀏覽器中查看樣式總結 引言 在開發移動端 Vue 項目時,選擇一個高效、輕量且功能豐富的組件庫是提升開發效率…

“GPU 擠不動了?”——聊聊基于 GPU 的計算資源管理

“GPU 擠不動了?”——聊聊基于 GPU 的計算資源管理 作者:Echo_Wish “老板:為什么 GPU 服務器卡得跟 PPT 一樣?” “運維:我們任務隊列爆炸了,得優化資源管理!” 在 AI 訓練、深度學習、科學計算的場景下,GPU 計算資源已經成為香餑餑。但 GPU 服務器貴得離譜,一臺 A…

AI滲透測試:網絡安全的“黑魔法”還是“白魔法”?

引言:AI滲透測試,安全圈的“新魔法師” 想象一下,你是個網絡安全新手,手里攥著一堆工具,正準備硬著頭皮上陣。這時,AI蹦出來,拍著胸脯說:“別慌,我3秒掃完漏洞&#xff0…

(二)GEE基礎學習初探及案例詳解【20250330】

Google Earth Engine(GEE)是由谷歌公司開發的眾多應用之一。借助谷歌公司超強的服務器運算能力以及與NASA的合作關系,GEE平臺將Landsat、MODIS、Sentinel等可以公開獲取的遙感圖像數據存儲在谷歌的磁盤陣列中,使得GEE用戶可以方便的提取、調用和分析海量…

redhat認證是永久的嗎

?認證有效期 ?紅帽認證一般有效期為3年?(如RHCSA、RHCE、RHCA等),從通過考試之日起計算。 ?例外:部分基礎或工程師認證(如Red Hat Certified Engineer)有效期為三年時間,以官方最新政策為準…

git --- cherry pick

git --- cherry pick cherry pick cherry pick Cherry Pick 是 Git 中的一個操作,它允許你選擇某個分支的某次(或多次)提交,并將其應用到當前分支,而不會合并整個分支的所有更改。 cherry pick 的作用 只提取某個特定的…

妙用《甄嬛傳》中的選妃來記憶概率論中的乘法公式

強烈推薦最近在看的不錯的B站概率論課程 《概率統計》正課,零廢話,超精講!【孔祥仁】 《概率統計》正課,零廢話,超精講!【孔祥仁】_嗶哩嗶哩_bilibili 其中概率論中的乘法公式,老師用了《甄嬛傳…

AI 的出現是否能替代 IT 從業者?

AI 的出現是否能替代 IT 從業者? AI 的快速發展正在深刻改變各行各業,IT 行業也不例外。然而,AI 并非完全替代 IT 從業者,而是與其形成互補關系。本文將從 AI 的優勢、IT 從業者的不可替代性、未來趨勢等方面,探討 AI…

【leetcode100】有效的括號

1、題目描述 給定一個只包括 (,),{,},[,] 的字符串 s ,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。左括號必須以正確的順序閉合。每個右括號都有一個對應的…

為什么使用Flask + uWSGI + Nginx 部署服務?

概述 在Python開發的web應用中,我們通常能夠看到flask、uWSGI、Nginx出現在一起,他們之間的關系是什么?為什么總是被應用在一起?  三者共同使用為了實現一個目的:客戶端向服務端發送數據請求,服…

接口等冪處理

介紹 ? 什么是等冪(Idempotency)? 等冪 無論這個操作被執行多少次,結果都是一樣的,不會因為多次執行而產生副作用。 通俗一點說:“點一次和點一百次,效果是一樣的。” ? 在接口中&#xff0…

P1090合并果子(優先隊列)

洛谷題目 這里使用的是優先隊列&#xff0c;非常簡單 首先讓我們一起來學習一下優先隊列&#xff08;默認是從大到小來排列&#xff09; 首先要使用頭文件 #include<queue> using namespace std; 然后聲明有限隊列 priority_queue<int> a; priority_queue&…

藍橋杯備考---->并查集之 Lake Counting

這道題就統計有多少個連通塊就行了 這時候我們又需要把二維轉成一維了&#xff0c;也就是把每一個格子都給一個編號 當我們合并連通塊的時候&#xff0c;其實是只需要四個方向的 因為我們是從上往下遍歷的&#xff0c;我們遍歷到某個位置的時候&#xff0c;它已經和上面部分…

React受控表單綁定

受控表單綁定 在 React 中&#xff0c;受控組件&#xff08;Controlled Component&#xff09;是指表單元素的值由 React 組件的 state 管理&#xff0c;React 通過 onChange 事件監聽輸入變化&#xff0c;并實時更新 state&#xff0c;從而控制表單輸入值。 為什么要使用受控…