CM--集群管理與負(fù)載均衡系統(tǒng).pptx_第1頁
CM--集群管理與負(fù)載均衡系統(tǒng).pptx_第2頁
CM--集群管理與負(fù)載均衡系統(tǒng).pptx_第3頁
CM--集群管理與負(fù)載均衡系統(tǒng).pptx_第4頁
CM--集群管理與負(fù)載均衡系統(tǒng).pptx_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1,CM-集群管理與負(fù)載均衡系統(tǒng),五竹, 搜索與算法,目錄,性能與應(yīng)用,2,目錄,背景介紹,Clustermap(CM)-集群管理與負(fù)載均衡系統(tǒng)起源于淘寶商品搜索引擎. 主要解決如下問題: 如何知道服務(wù)節(jié)點(diǎn)(searcher) 是否可用 如何選取一行服務(wù)節(jié)點(diǎn),并能保持各行之間的負(fù)載均衡 如何選取某一列的一個節(jié)點(diǎn) 不停服務(wù)的情況下,增減機(jī)器,Before,背景介紹,伴隨著淘寶搜索業(yè)務(wù)的發(fā)展,CM面臨越來越多的挑戰(zhàn): 集群間的集群狀態(tài)管理與負(fù)載均衡的要求越來越多,如 SP需要知道其下面的所有服務(wù)的拓?fù)浜痛婊顮顟B(tài). 服務(wù)定位更復(fù)雜,同一個物理集群,可以做為多個不同的邏輯集群對外提供服務(wù),并且其下的服務(wù)節(jié)點(diǎn),在不同的連輯集群中,狀態(tài)可以不一樣。如 etao HA3 集群。 服務(wù)的信息顆粒要求更小,如 UPS系統(tǒng)中,需要知道某張表的分區(qū),分布在那些節(jié)點(diǎn)上。 替換LB設(shè)備,網(wǎng)內(nèi)集群間的流量越來越大(每天幾十億),LB設(shè)備的成來也越來越大.,背景介紹,性能更強(qiáng)大,支持更多的節(jié)點(diǎn)。HA3 原來采用 zookeeper 來做心跳,集群到2000臺左右時,出現(xiàn)性能瓶頸。 運(yùn)維管理需求,根據(jù) cpu_busy,latency,iowait 等來自動下線 offline 機(jī)器 除主動心跳外,還支持更多的服務(wù)有效性檢查測試.,2. 2012年CM經(jīng)過了一次重構(gòu),以便更好的支持集群間的服務(wù)定位與發(fā)現(xiàn)的應(yīng)用需求.,Now,目錄,性能與應(yīng)用性能,性能與應(yīng)用應(yīng)用,性能與應(yīng)用應(yīng)用,管理搜索內(nèi)部所有集群,14個業(yè)務(wù)線,31個集群 統(tǒng)一搜索內(nèi)部所有服務(wù)定位和集群狀態(tài)管理 替換搜索內(nèi)部LB負(fù)載均衡設(shè)備(近 50 億PV),目錄,CONTENTS,功能特性,訂 閱,運(yùn)維管理,同步ConfigServer,負(fù)載均衡,監(jiān)控&報警,PHP擴(kuò)展,名詞說明,Cluster: 多個節(jié)點(diǎn)組成的集合稱為一個Cluster CMServer: ClusterMap內(nèi)部的服務(wù)端,管理集群和節(jié)點(diǎn) HBNode: 表示心跳匯報節(jié)點(diǎn),匯報自己狀態(tài)信息到CMServer Subscriber: 訂閱者,與CMServer通訊,獲取集群信息 CMSubProxy: 訂閱者代理,訂閱者功能基礎(chǔ)上還會寫共享內(nèi)存 CMCtrl: 工具,用來提供集群的增/刪/改,節(jié)點(diǎn)的上下線 ConfigServer: 淘寶的一個管理配置的服務(wù),功能特性,心跳匯報,1/匯報類型,需要預(yù)先配置的節(jié)點(diǎn) 不需要預(yù)先配置的直接匯報的節(jié)點(diǎn),2/節(jié)點(diǎn)可以匯報心跳和負(fù)載信息,及用戶自定義的數(shù)據(jù)信息,3/支持一個節(jié)點(diǎn)對應(yīng)多個集群,即一個節(jié)點(diǎn)在多個集群中存在,4/支持一個節(jié)點(diǎn)注冊多個端口和協(xié)議,功能特性,健康檢查,節(jié)點(diǎn)健康檢查,節(jié)點(diǎn)不需要向CMServer匯報,CMServer會主動定期檢查節(jié)點(diǎn)的狀態(tài)是否正常 包括四層健康檢查,和七層健康檢查 同時支持一個節(jié)點(diǎn)對應(yīng)多個集群 定義 4/7 層健康檢查協(xié)議,可以向 CM 返回集群系統(tǒng)狀態(tài)(cpu_busy等),qps,latency 信息(暫未實現(xiàn)),功能特性,同步ConfigServer,CMServer上的節(jié)點(diǎn)信息同步到ConfigServer,根據(jù)配置, 可以將某些集群的信息同步的 ConfigServer, 方便基于Hsf/Configserver 框架的Java前端,這樣就可以通過 ConfigServer 來獲取搜索后臺服務(wù)的有效節(jié)點(diǎn)信息, 直接訪問, 而不再通過VIP方式訪問,功能特性,訂 閱,1/訂閱集群方式,訂閱所有集群 根據(jù)配置,訂閱1個或多個集群,2/集群的拓?fù)浣Y(jié)構(gòu),類似于Kingso的物理集群到拓?fù)浼?1-1 映射 類似與Ups的物理集群到拓?fù)浼?1-N 映射,3/支持本機(jī)房優(yōu)先分配的策略,4/支持訂閱者為虛節(jié)點(diǎn),只訂閱不發(fā)心跳,5/支持多種語言的訂閱(C, Php, Java, Lua,Node.js),功能特性,訂 閱,6/對外提供的查詢接口,allocRow 獲取一行節(jié)點(diǎn) allocValidRow 獲取一行有效節(jié)點(diǎn) allocNodeOfPartition 獲取一列的所有節(jié)點(diǎn) allocValidNodeOfPartition 獲取一列的所有有效節(jié)點(diǎn) allocNodeByPartitionId 獲取一個 TopoCluster 的某個分區(qū)中分配一個的節(jié)點(diǎn) 6) allocValidNodeByPartitionId 獲取一個 TopoCluster 某個分區(qū)中分配一個可用的節(jié)點(diǎn) allocAllNode 獲取集群所有節(jié)點(diǎn) allocAllValidNode 獲取集群所有有效節(jié)點(diǎn) getNodeStatus 根據(jù)節(jié)點(diǎn)spec獲取當(dāng)前節(jié)點(diǎn)的狀態(tài) getNodeMetaInfo 根據(jù)節(jié)點(diǎn)spec獲取當(dāng)前節(jié)點(diǎn)的MetaInfo信息 getPartitionCnt 獲取一個 TopoCluster 中的分區(qū)數(shù) getNodeCntOfPartition 獲取一個 TopoCluster 中的某分區(qū)的節(jié)點(diǎn)數(shù),功能特性,負(fù)載均衡,功能特性,PHP擴(kuò)展,訂閱者支持: Nginx+Php,基于共享內(nèi)存方式同步集群變更信息的CMSubProxy 和 Php Extension Lib,訂閱者支持: Nginx+Lua,基于共享內(nèi)存方式同步集群變更信息的CMSubProxy 和 Lua Extension Lib,訂閱者支持: TNginx,基于共享內(nèi)存方式同步集群變更信息的CMSubProxy 和 Tnginx Module,功能特性,1/集群配置隔離 ,方便管理,ClusterMap做到一個集群只在一個配置文件里,不同集群互不影響,運(yùn)維管理,2/集群操作,添加,刪除,查詢,上線,下線,3/節(jié)點(diǎn)操作,添加,刪除,查詢,上線,下線,4/支持節(jié)點(diǎn)自動下線,當(dāng)節(jié)點(diǎn)的負(fù)載或者Qps超過節(jié)點(diǎn)承受能力時,CMServer可以自動下線該節(jié)點(diǎn),功能特性,5/支持CMServer級聯(lián),即一臺CMServer訂閱另一臺CMServer上的集群,6/支持CMServer主從切換,不需要同步集群信息,通過的ZK的leader選舉機(jī)制,進(jìn)行CMServer主從切換,即當(dāng)前的CMMaster服務(wù)停掉,ZK上會立即選舉一個CMMaster,新的Master會從ZK上拿到集最新的集群全量信息,運(yùn)維管理,功能特性,監(jiān)控&警報,監(jiān)控&報警,Zk服務(wù)監(jiān)控 CMServer服務(wù)和配置文件監(jiān)控 集群狀態(tài)和內(nèi)部節(jié)點(diǎn)的狀態(tài)監(jiān)控 同步到ConfigServer上的節(jié)點(diǎn)信息監(jiān)控,WebServer,上下線集群和節(jié)點(diǎn) 查看所有的訂閱者 查看集群狀態(tài)和內(nèi)部節(jié)點(diǎn)的狀態(tài) 查看同步到ConfigServer上的節(jié)點(diǎn)信息,目錄,整體架構(gòu),整體架構(gòu),整體架構(gòu),管理機(jī)器,負(fù)責(zé)管理集群拓?fù)浣Y(jié)構(gòu)、收集節(jié)點(diǎn)狀態(tài)信息、向訂閱者推送集群狀態(tài)信息,CMServer,整體架構(gòu),Server級聯(lián)功能,CMServer2,整體架構(gòu),運(yùn)維管理工具:用來提供集群的增/刪/改,節(jié)點(diǎn)的offline/online等操作,CMCtrl,整體架構(gòu),操作集群,監(jiān)控和報警,WebServer,整體架構(gòu),定期向CMServer匯報心跳和負(fù)載信息,HBNode,整體架構(gòu),CMServer端定期檢查服務(wù)狀態(tài)、,APPServer,3# 整體架構(gòu),定期同步管理的結(jié)點(diǎn)信息給ConfigServer,ConfigServer,整體架構(gòu),集群的訂閱者,先向C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論