分佈式系統的簡介

隨着大型網站的各種高併發訪問、海量數據處理等場景越來越多,如何實現網站的高可用、易伸縮、可擴展、安全等目標就顯得越來越重要。爲了解決這樣一系列問題,大型網站的架構也在不斷髮展。提高大型網站的高可用架構,不得不提的就是分佈式。本文主要簡單介紹了分佈式系統的概念、分佈式系統的特點、常用的分佈式方案以及分佈式和集羣的區別等。


一、集中式系統

集中式系統用一句話概括就是:一個主機帶多個終端終端沒有數據處理能力,僅負責數據的錄入和輸出。而運算、存儲等全部在主機上進行
在這裏插入圖片描述
拿一個電子商城舉例,一個集中式系統的電子商城,通過一個應用實現,該應用部署在一起主機上,對外提供服務。用戶的所有操作均通過這一臺機器的一個應用實現。

集中式系統的最大的特點就是部署結構非常簡單,底層一般採用從IBM、HP等廠商購買到的昂貴的大型主機。因此無需考慮如何對服務進行多節點的部署,也就不用考慮各節點之間的分佈式協作問題

但是,由於採用單機部署。很可能帶來系統大而複雜、難於維護、發生單點故障(單個點發生故障的時候會波及到整個系統或者網絡,從而導致整個系統或者網絡的癱瘓)、擴展性差等問題。

集中式系統中整個項目就是一個獨立的應用,整個應用也就是整個項目,所有的東西都在一個應用裏面
如一個網站就是一個應用,最後是多個增加多臺服務器或者多個容器來達到負載均衡的避免單點故障的目的,當然,數據庫是可以分開部署的。


二、分佈式系統

分佈式系統是若干獨立計算機的集合,這計算機對用戶來說就像單個相關係統。

也就是說分佈式系統背後是由一系列的計算機組成的,但用戶感知不到背後的邏輯,就像訪問單個計算機一樣。


三、分佈式系統利弊

在分佈式系統中:

1、應用可以按業務類型拆分成多個應用,再按結構分成接口層、服務層;我們也可以按訪問入口分,如移動端、PC端等定義不同的接口應用;

2、數據庫可以按業務類型拆分成多個實例,還可以對單表進行分庫分表

3、增加分佈式緩存、搜索、文件、消息隊列、非關係型數據庫等中間件

很明顯,分佈式系統可以解決集中式不便擴展的弊端,我們可以很方便的在任何一個環節擴展應用,就算一個應用出現問題也不會影響到別的應用。

隨着微服務Spring Cloud & Docker的大熱,及國內開源分佈式Dubbo框架的重生,分佈式技術發展非常迅速。

分佈式系統雖好,也帶來了系統的複雜性,如分佈式事務、分佈式鎖、分佈式session、數據一致性等都是現在分佈式系統中需要解決的難題,雖然已經有很多成熟的方案,但都不完美。分佈式系統也增加了開發測試運維成本,工作量增加,分佈式系統管理不好反而會變成一種負擔。


轉載文章:一文讀懂分佈式系統到底是什麼?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章