日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

大型网站系统与Java中间件实践 01 认识分布式

發布時間:2025/4/16 windows 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大型网站系统与Java中间件实践 01 认识分布式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

01 認識分布式
02 Java中間件
03 分布式框架

如果感覺文章中的圖片不清楚可以查看下面鏈接:

原圖VISIO: https://note.youdao.com/share/?id=7a495e3fba485308f30d700a88ab5689&type=note#/ 原圖PDF地址: https://note.youdao.com/share/?id=35600647bd0177daf74252ca9ce45b77&type=note#/

后續會把原圖文件同步到Github上面上去。暫時謝分享在有道云上。

1:分布式系統介紹

1.1 什么事分布式系統

1.1.1 分布式系統的定義

是一組聯網計算機上的組件,組件之間通過消息傳遞來通信并協調行動。

1.1.2 分布式系統的意義

單機的缺陷:

  • 升級單機處理能力的性價比越來越低。
  • 單機處理能力存在瓶頸。
  • 單機不能滿足穩定性和可用性的考慮。
  • 1.2 分布式系統的基礎知識

    1.2.1 組成計算機的5要素

    輸入 + 輸出 + CPU + 內存 + 外存

    計算機組成5要素

    1.2.2 線程和進程

    進程是CPU資源分配的最小單位。

    線程是CPU資調度的最小單位。線程屬于進程,一個進程內的多個線程共享進程的內存空間,而多個進程之間的內存空間是相互獨立的。

  • 互不通訊的多線程模式
  • 互不通訊
  • 基于共享容器協同的多線程模式
  • 生產者和消費者模型。

    共享容器協同
  • 基于事件協同的多線程模式
  • 事件協同
  • 多進程模式
  • 1.2.3 網絡通信基礎和知識

    1.2.3.1 OSI與TCP/IP
    1.2.3.2 網絡IO實現方式
  • BIO 阻塞式IO
  • NIO 非阻塞式IO 基于事件驅動采用Reactor模式
  • AIO 異步IO
  • 1.2.4 如何把應用叢單機擴展到分布式

    1.2.4.1 輸入設備的變化

    人機交互的輸入設備 + 系統間調用者

    1.2.4.2 輸出設備的變化

    人家交互輸出設備 + 系統間響應者

    1.2.4.3 控制器的變化
    1.2.3.4 運算器的變化
    1.2.3.5 存儲的變化

    1.2.5 分布式系統的難點

    1.2.5.1 缺乏全局時鐘

    節點時鐘不一致,分布式鎖

    1.2.5.2 面對故障獨立性

    多個節點故障,怎么定位

    1.2.5.3 處理單點故障

    集群,單點做備份,降低墊底故障的影響范圍

    1.2.5.4 事物的挑戰

    兩階段提交 最終一致 BASE CAP Paxos

    2 大型網站及架構演進過程

    2.1 大型網站的特點

    高并發 + 海量數據

    2.2 大型網站的架構演進

    2.2.1 Java技術單機構建的網站

    最基本的單體應用 應用服務器和數據庫服務器部署在一臺機器上

    單體應用

    2.2.2 數據庫與應用分離

    將數據庫服務器和應用服務器部署在不同的機器上

    數據和應用分開部署

    2.2.3 應用服務器集群

    負載均衡

    因為HTTP協議是無狀態的,Session有關聯用戶和服務器的狀態

    需解決Session的問題

  • Session Sticky
  • 根據Session Id在負載均衡器做路由,同一個Session Id總是路由到同一臺服務器。

    缺點:

    1:一臺服務器宕機,那么機器的會話數據全部丟失。

    2:會話表示是應用層的信息,那么負載均衡服務器需要在應用層進行數據解析,開銷比較大。

    3:負載均衡服務器變成了一個有狀態的節點。

  • Session 復制
  • 增加會話同步機制,把會話數據同步到其他服務器上面。

    缺點:

    1:同步Session數據增加網絡帶寬的開銷。

    2:同步會導致每臺服務器有集群的數據,導致Session數據的內容占用會很嚴重。

    3:Session數據集中存儲

    將Session數據存儲在存儲服務器上。

    缺點:

    1:讀寫Session數據引入了網絡操作,相對于讀取本地數據來說,存在延時和不穩定 但是我們服務器通訊在內網,所以問題不大。

    2:存儲集群出現問題,就會影響我們的應用。

    4:基于Cookie

    把Session的數據存儲在Cookie里面,

    缺點:

    1:Cookie長度限制。

    2:安全性,依賴于客戶端維持狀態。

    3:性能影響,帶寬消耗:每次HTTP請求增加帶寬消耗。

    2.2.5 數據壓力變大,讀寫分離

    2.2.5.1 數據庫讀寫分離

    數據庫主從同步,更新操作連接主庫數據源,查詢操作連接從庫數據源

    2.2.5.2 搜索引擎是一個讀庫
    2.2.5.3 緩存
  • 數據緩存
  • 頁面緩存
  • 2.2.6 引入分布式存儲系統
    讀寫分離

    2.2.7 數據庫瓶頸

    2.2.7.1 專庫專用,數據垂直拆分

    將不同的業務數據拆分到不同的數據庫中。

    不能關聯查詢。

    2.2.7.2 數據水平分表

    主鍵一致性

    數據庫拆分

    2.2.8 應用面對新挑戰

    數據拆分,業務越來越大,項目很難修改

    服務化

    2.2.9 消息中間件

    異步和解耦

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的大型网站系统与Java中间件实践 01 认识分布式的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。