1. 程式人生 > >結合實際專案理解叢集和分散式的關係

結合實際專案理解叢集和分散式的關係

1、關於叢集和分散式的關係

最近看了篇文章 到底什麼是叢集&分散式,文中收集了多名網友的回答,一個來自知呼的回答挺明瞭:

分散式:一個業務分拆多個子業務,部署在不同的伺服器上,(我的補充:)具有處理高併發的能力,但一個子業務系統宕機,該子業務功能將無法實現。

叢集:同一個業務,部署在多個伺服器上,(我的補充:)具有高可用的能力,一個系統宕機,不影響業務實現。

現在所做的專案基本架構為spring + spring MVC + Mybatis,資料庫使用mysql,快取伺服器使用的是redis叢集,分散式服務使用的是dubbo+zookeeper組合,結合專案說說叢集和分散式。

2、先說分散式

主專案簡稱DAMC,作為其它系統的資料和許可權管理中心,為其它系統提供資料服務,該系統屬於一次開發,持續使用,後續變更需求極少。

所以為了保障該系統的穩定性和持續性,DAMC並不對外提供介面,而是重新搭建了一套專門提供介面服務的系統,簡稱MIS,其它業務系統BIZS(泛指所有與MIS對接的業務系統)通過MIS獲取DAMC的基礎資料

BIZS作為客戶端,MIS作為服務端,通過dubbo+zookeeper方式實現客戶端(訂閱者)與服務端(提供者)之間的通訊,MIS就作為DAMC的一個子業務被拆分出來,以分散式的方式為BIZS系統提供服務

後續隨著業務的發展,單純的MIS系統已經不能滿足需求了,需要對MIS系統進行拆分,比如專門服務於內部系統的IN-MIS和專門服務於門戶、網際網路系統的外部系統OUT-MIS,IN-MIS和OUT-MIS同時作為服務端(提供者),以分散式的方式被部署為DAMC的兩個子業務提供服務

這就是分散式所說的【一個業務分拆多個子業務,部署在不同的伺服器上】,縮短了單個業務執行的時間,提高了單位時間內處理業務的能力,即處理高併發的能力

3、然後說叢集

上面提到的DAMC系統作為基本的資料和許可權管理中心,其資料絕大多數的情況是以查詢被訪問的,修改、刪除和新增的情況比較少,資料穩定性比較強,DAMC的分散式系統MIS以及後期的IN-MIS、OUT-MIS都是查詢資料

同時隨著業務發展,考慮到客戶端(訂閱者)的數量及訪問頻次給資料庫帶來的壓力,加入了redis快取伺服器叢集(其實就兩臺),在減輕mysql資料庫壓力的同時,保證了資料訪問的穩定性和可用性(高可用),因為一臺宕機,還有另一臺

這就是叢集所說的【同一個業務,部署在多個伺服器上】,提供的是高可用能力。

當然叢集也有負載均衡叢集,比如分散式中作為服務端(提供者)的MIS(IN-MIS、OUT-MIS),隨著訪問壓力的加大,可以將其部署在多臺伺服器上,同時作為提供者向zookeeper註冊中心註冊服務,客戶端(訂閱者)隨機獲取任意一臺MIS(IN-MIS、OUT-MIS)的服務,實現負載均衡的能力。


====================================分割線====================================

關於專案中使用技術基礎的部分整理的差不多,後續繼續補充,接下來是時候把專案“大卸八塊”了,從功能應用上去分析幾一個技術點。。。希望這不是一句空話。。。當然也有可能還是基礎。。。

相關推薦

結合實際專案理解叢集分散式關係

1、關於叢集和分散式的關係 最近看了篇文章 到底什麼是叢集&分散式,文中收集了多名網友的回答,一個來自知呼的回答挺明瞭: 分散式:一個業務分拆多個子業務,部署在不同的伺服器上,(我的補充:)具有處理高併發的能力,但一個子業務系統宕機,該子業務

叢集分散式相關概念的區別與聯絡

先說區別: 一句話:分散式是並聯工作的,叢集是串聯工作的。 1:分散式是指將不同的業務分佈在不同的地方。 而叢集指的是將幾臺伺服器集中在一起,實現同一業務。 分散式中的每一個節點,都可以做叢集。 而叢集並不一定就是分散式的。 舉例:就比如新浪網,訪問的人多了,他可以做一個群集,前面放一個響應伺服器,

eclipse使用ant + ivy 配置專案jar包依賴關係

首先,ant是版本區分的,不同版本適配不同jdk版本。 以我本機為例,本機ant版本為1.7.0對應ivy版本是2.2.0,jdk使用的1.5 將ant檔案安裝或解壓後,配置ant的環境變數: ANT_HOME:指向ant的檔案路徑。 path:追加%ANT_HOME%\bin; 執行cmd,輸

叢集分散式

叢集概念1. 兩大關鍵特性 叢集是一組協同工作的服務實體,用以提供比單一服務實體更具擴充套件性與可用性的服務平臺。在客戶端看來,一個叢集就象是一個服務實體,但事實上叢集由一組服務實體組成。與單一服務實體相比較,叢集提供了以下兩個關鍵特性: ·  可擴充套件性--叢集的效能不限

Quartz整合springMVC 的方案二(持久化任務、叢集分散式

Quartz是一個開放原始碼專案,專注於任務排程器,提供了極為廣泛的特性如持久化任務,叢集和分散式任務等。 Quartz核心是排程器,還採用多執行緒管理。 1.持久化任務:當應用程式停止執行時,所有排程資訊不被丟失,當你重新啟動時,排程資訊還存在,這就是持久化任務。

最全面的EventBus 3.1的使用教程及官方推薦的結合訂閱者索引processor顯著提升效能實際專案中的使用注意事項

需求場景 無論是現在的專案還是以前的專案中,都會遇見執行緒之間通訊,元件之間通訊的需求,我們知道這些需求都可以使用EventBus來處理,為了對比體現出EventBus使用的方便簡潔,我們先來回顧下在EventBus出現以前我們是怎麼處理執行緒間通訊和元件間通訊的。 1,執行緒間通訊

微服務分散式事務實戰(一) 專案需求描述實現步驟

本文通過一個具體例項如何實施springCloud 分散式事務,不對分散式事務理論做探索。由於內容較多,分多個小節來說明 案例需求: 建立2個基於springCloud的微服務,分別訪問不同的資料庫;然後建立一個整合服務,呼叫微服務實現資料的儲存到2個不同的資料庫,要求採用分散式事務,要麼都

簡單Java類資料庫操作及javafx的結合專案

先圖為上   秦時明月漢時關,萬里長征人未還,妙呀,甚是..   1.開始 1.專案目的:   開發工具: Idea + Mysql + JAVASE   1.其實簡單來說就是實現兩張資料表的基本操作,     1.新增     2. 刪除     3.修改

以yarn client分散式叢集方式執行spark-2.3.2-bin-hadoop2.6

一以分散式叢集執行 修改配置檔案/hadoop_opt/spark-2.3.2-bin-hadoop2.6/conf/spark-env.sh export HADOOP_CONF_DIR=/hadoop_opt/hadoop-2.6.1/etc/hadoop expo

SpringBoot通過JedisCluster連線Redis叢集分散式專案

分散式專案 SpringBoot + Redis使用 現在開發流行微服務、分散式,基於這種情況需要使用redis不想每個專案都去寫重複的程式碼,所以我在工具包中封裝了redis這一塊的連線,但是問題是所有的專案都會依賴我的基礎包,卻不是所有的專案都要使用redis。所以我需要根據業務

最新小白詳細描述在centos7.5上安裝python3並使用Nginx+virtualenv+supervisor來部署tornado專案(整理集合結合實際)系列2

4.安裝nginx 安裝gcc gcc是用來編譯下載下來的nginx原始碼,安裝gcc和c++編譯器(當然以下都是在切換到root使用者下的) yum -y install gcc  gcc-c++   centOS安裝依賴 yum -y install

最新小白詳細描述在centos7.5上安裝python3並使用Nginx+virtualenv+supervisor來部署tornado專案(整理集合結合實際)系列1

Centos7預設自帶了Python2.7版本(選擇最小安裝可能沒有),但是因為專案需要使用Python3.x你可以按照此文的三個方法進行安裝.(本文是大致部署好後一段時間才寫的,由於中間遇到許多坑導致無法知道有些步驟是否起作用了,細節可能會有一些出入請自行辨別。) 1.安裝python3.5

Spark專案實戰-實際專案中常見的優化點-分配更多的資源調節並行度

1、分配更多的資源 (1)分配哪些資源?executor、cpu per executor、memory per executor、driver memory。 (2)在哪裡分配這些資源?在我們在生產環境中,提交spark作業時,用的spark-submit shell指

flume配置檔案實際場景理解

一、場景一描述: 線上api介面服務通過log4j往本地磁碟上列印日誌,在介面伺服器上安裝flume,通過exec source收集日誌,然後通過avro sink傳送到彙總伺服器上的flume;彙總伺服器上的flume通過avro source接收日誌,然後通過file_

web伺服器、Apache tomcat 關係理解

以一次JSP請求響應為例,講解伺服器,Apache、Tomcat之間的關係。 帶著這樣一個概念去看:Apache與Apache Tomcat(簡稱Tomcat)都是可以獨立執行的伺服器。你平時見到的apache-tomcat-7.0.72實際上只是Tomcat伺服器。此處整

註冊登入專案開發流程包間的呼叫關係

描述專案開發的流程 首先要進行可行性研究;然後進行需求分析,對應要寫出需求分析文件;再同時進行美工設計和資料庫設計,對應寫出資料庫設計文件;再進行概要設計,對應寫出概要設計文件;接著進行詳細設計,對應要寫的是詳細分析文件;分析都進行完了以後,要開始進行編碼;將編碼完成後,要對整個專案進行測試

HBase簡介分散式叢集的搭建

1,HBase是什麼? 1,概念 HBase是一個高可靠性、高效能、可伸縮、分散式、基於列儲存的非關係型(NoSQL)資料庫。 列式儲存和行式儲存? 非關係型資料庫與關係型資料庫? 2,與Google Bigtable的不同之處 服務 Goo

MongoDB一個基於分散式檔案儲存的資料庫(介於關係資料庫關係資料庫之間的資料庫)

(老外也很看重中國市場啊,知道大家英語不好,做的中文社群) 2:在MongoDB的github上面下載壓縮包上傳到VMware的linux作業系統上面:操作過程就不做多敘述了(使用Xsheel連

java架構師高併發叢集大型分散式專案實戰

包含: 高階Java架構師包含:Spring boot、Spring  cloud、Dubbo、Redis、ActiveMQ、Nginx、Mycat、Spring、MongoDB、ZeroMQ、Git、Nosql、Jvm、Mecached、Netty、Nio、Mina

軌跡系列13——多軌跡展示在實際專案中的落地優化

文章版權由作者李曉暉和部落格園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/ 1.背景          在之前的”多車輛實時跡展示方案”(https://www.cnblogs.com/naaoveGIS/p/8551915.html)文章中,我講解了我們