結合實際專案理解叢集和分散式的關係
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)文章中,我講解了我們