資源描述:
《CM--集群管理與負載均衡系統(tǒng)x》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、1CM--集群管理與負載均衡系統(tǒng)五竹,搜索與算法目錄背景介紹1整體架構(gòu)4功能特性3性能與應用2背景介紹1性能與應用2整體架構(gòu)4功能特性3目錄背景介紹Clustermap(CM)--集群管理與負載均衡系統(tǒng)起源于淘寶商品搜索引擎.主要解決如下問題:如何知道服務(wù)節(jié)點(searcher)是否可用如何選取一行服務(wù)節(jié)點,并能保持各行之間的負載均衡如何選取某一列的一個節(jié)點不停服務(wù)的情況下,增減機器Before背景介紹伴隨著淘寶搜索業(yè)務(wù)的發(fā)展,CM面臨越來越多的挑戰(zhàn):集群間的集群狀態(tài)管理與負載均衡的要求越來越多,如SP需要知道其下面的所有服務(wù)的拓撲和存活狀態(tài).服務(wù)定位更復雜,同一個物理集
2、群,可以做為多個不同的邏輯集群對外提供服務(wù),并且其下的服務(wù)節(jié)點,在不同的連輯集群中,狀態(tài)可以不一樣。如etaoHA3集群。服務(wù)的信息顆粒要求更小,如UPS系統(tǒng)中,需要知道某張表的分區(qū),分布在那些節(jié)點上。替換LB設(shè)備,網(wǎng)內(nèi)集群間的流量越來越大(每天幾十億),LB設(shè)備的成來也越來越大.背景介紹性能更強大,支持更多的節(jié)點。HA3原來采用zookeeper來做心跳,集群到2000臺左右時,出現(xiàn)性能瓶頸。運維管理需求,根據(jù)cpu_busy,latency,iowait等來自動下線offline機器除主動心跳外,還支持更多的服務(wù)有效性檢查測試.2.2012年CM經(jīng)過了一次重構(gòu),以便更
3、好的支持集群間的服務(wù)定位與發(fā)現(xiàn)的應用需求.Now背景介紹1功能特性2整體架構(gòu)4性能與應用2目錄性能與應用—性能測試說明測試環(huán)境:linux2.6.18-164.el5cpu:16coreIntel(R)Xeon(R)CPUE5620cpuMHz:2400memory:32G測試結(jié)果在無CM級連的情況下,單個CMServer可以同時支持:心跳匯報節(jié)點(匯報周期100ms)10000個4/7層健康檢查節(jié)點(檢查周期1s)6000個訂閱節(jié)點(更新周期1s)4000個瓶頸主要是千M網(wǎng)卡的帶寬占滿性能與應用—應用性能與應用—應用管理搜索內(nèi)部所有集群,14個業(yè)務(wù)線,31個集群統(tǒng)一搜索
4、內(nèi)部所有服務(wù)定位和集群狀態(tài)管理替換搜索內(nèi)部LB負載均衡設(shè)備(近50億PV)目錄CONTENTS背景介紹1功能特性2整體架構(gòu)3性能與應用4功能特性訂閱心跳匯報運維管理健康檢查同步ConfigServer負載均衡監(jiān)控&報警PHP擴展名詞說明Cluster:多個節(jié)點組成的集合稱為一個ClusterCMServer:ClusterMap內(nèi)部的服務(wù)端,管理集群和節(jié)點HBNode:表示心跳匯報節(jié)點,匯報自己狀態(tài)信息到CMServerSubscriber:訂閱者,與CMServer通訊,獲取集群信息CMSubProxy:訂閱者代理,訂閱者功能基礎(chǔ)上還會寫共享內(nèi)存CMCtrl:工具,用來
5、提供集群的增/刪/改,節(jié)點的上下線ConfigServer:淘寶的一個管理配置的服務(wù)功能特性心跳匯報1/匯報類型需要預先配置的節(jié)點不需要預先配置的直接匯報的節(jié)點2/節(jié)點可以匯報心跳和負載信息,及用戶自定義的數(shù)據(jù)信息3/支持一個節(jié)點對應多個集群即一個節(jié)點在多個集群中存在4/支持一個節(jié)點注冊多個端口和協(xié)議功能特性健康檢查節(jié)點健康檢查節(jié)點不需要向CMServer匯報,CMServer會主動定期檢查節(jié)點的狀態(tài)是否正常包括四層健康檢查,和七層健康檢查同時支持一個節(jié)點對應多個集群定義4/7層健康檢查協(xié)議,可以向CM返回集群系統(tǒng)狀態(tài)(cpu_busy等),qps,latency信息(暫
6、未實現(xiàn))功能特性同步ConfigServerCMServer上的節(jié)點信息同步到ConfigServer根據(jù)配置,可以將某些集群的信息同步的ConfigServer,方便基于Hsf/Configserver框架的Java前端,這樣就可以通過ConfigServer來獲取搜索后臺服務(wù)的有效節(jié)點信息,直接訪問,而不再通過VIP方式訪問功能特性訂閱1/訂閱集群方式訂閱所有集群根據(jù)配置,訂閱1個或多個集群2/集群的拓撲結(jié)構(gòu)類似于Kingso的物理集群到拓撲集群1-1映射類似與Ups的物理集群到拓撲集群1-N映射3/支持本機房優(yōu)先分配的策略4/支持訂閱者為虛節(jié)點,只訂閱不發(fā)心跳5/支
7、持多種語言的訂閱(C,Php,Java,Lua,Node.js)功能特性訂閱6/對外提供的查詢接口allocRow獲取一行節(jié)點allocValidRow獲取一行有效節(jié)點allocNodeOfPartition獲取一列的所有節(jié)點allocValidNodeOfPartition獲取一列的所有有效節(jié)點allocNodeByPartitionId獲取一個TopoCluster的某個分區(qū)中分配一個的節(jié)點6)allocValidNodeByPartitionId獲取一個TopoCluster某個分區(qū)中分配一個可用的節(jié)點allocAllN