將一套系統拆分成不同子系統部署在不同服務器上(這叫分布式),然后部署多個相同的子系統在不同的服務器上(這叫集群),部署在不同服務器上的同一個子系統應做負載均衡。
分布式是並聯工作的,集群是串聯工作的。
分布式:需要按照功能點把大系統拆分成各個獨立的子系統,每個子系統對應每個獨功能,對每個子系統(專業名詞叫節點)進行集群,需要系統之間配合才能完成整個業務邏輯。
集群:是一組協同工作的服務實體,用以提供比單一服務實體更具擴展性和可用性的服務平台。分類:高可用集群、負載均衡集群、科學計算集群
負載均衡:把任務比較均衡的分配到集群環境下的計算和網絡資源。
集群的可擴展和高可用:
可擴展性:集群的性能不限於單一的服務實體,新的服務實體可以動態的加入到集群中
高可用性:同樣的服務可以由多個服務實體提供,如果一個服務實體失敗了,另一個服務實體會接管失敗的服務實體。
分布式和集群的區別(關系)?
分布式架構:(將不同的業務分布在不同的地方)把一個系統拆分成多個子系統,各個子系統進行tomcat集群。一個任務分給多台機器去做,減少單個任務的執行時間。
集群:同一個項目部署到多台服務器上(將幾台服務器集中在一起,實現同一業務)。提高單位時間內執行任務數。
分布式中每個節點,都可以做集群。
而集群不一定是分布式的。
集群能保證系統的並發量和高可用。保證集群高可用,必須要有三台或三台以上的服務器。Redis集群,五台服務器間采用自動選舉機制選出主從服務器,采用乒乓機制連接,當有其中一台機器掛掉,超過半數以上機器乒乓機制連不上一台機器時,我們就可以發現這個問題,並拿壞掉的服務器去修理。
優點:
1、把模塊拆分,使用接口通信,降低模塊之間的耦合度(降低它們的依賴程度和關聯性)。
2、把項目拆分成若干個子項目,不同的團隊負責不同的子項目(對於團隊來說可以更好地分配任務)。
3、增加功能時只需要再增加一個子項目,調用其他系統的接口就可以。
4、可以靈活的進行分布式部署。
缺點:
1、系統之間交互需要使用遠程通信,接口開發增加工作量。
2、各個模塊有一些通用的業務邏輯無法共用。(基於SOA架構通過Dubbo提供服務解決這一問題)
3、溝通成本很高。