CM-集群管理与负载均衡系统_第1页
CM-集群管理与负载均衡系统_第2页
CM-集群管理与负载均衡系统_第3页
CM-集群管理与负载均衡系统_第4页
CM-集群管理与负载均衡系统_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1

CM--集群管理与负载均衡系统五竹,搜索与算法目录背景介绍1整体架构4功能特性3性能与应用2背景介绍1性能与应用2整体架构4功能特性3目录背景介绍Clustermap(CM)--集群管理与负载均衡系统起源于淘宝商品搜索引擎.主要解决如下问题:如何知道效劳节点(searcher)是否可用如何选取一行效劳节点,并能保持各行之间的负载均衡如何选取某一列的一个节点不停效劳的情况下,增减机器Before背景介绍伴随着淘宝搜索业务的开展,CM面临越来越多的挑战:集群间的集群状态管理与负载均衡的要求越来越多,如SP需要知道其下面的所有效劳的拓扑和存活状态.效劳定位更复杂,同一个物理集群,可以做为多个不同的逻辑集群对外提供效劳,并且其下的效劳节点,在不同的连辑集群中,状态可以不一样。如etaoHA3集群。效劳的信息颗粒要求更小,如UPS系统中,需要知道某张表的分区,分布在那些节点上。替换LB设备,网内集群间的流量越来越大(每天几十亿),LB设备的成来也越来越大.背景介绍性能更强大,支持更多的节点。HA3原来采用zookeeper来做心跳,集群到2000台左右时,出现性能瓶颈。运维管理需求,根据cpu_busy,latency,iowait等来自动下线offline机器除主动心跳外,还支持更多的效劳有效性检查测试.2.2012年CM经过了一次重构,以便更好的支持集群间的效劳定位与发现的应用需求.Now背景介绍1功能特性2整体架构4性能与应用2目录性能与应用—性能测试说明测试环境:

linux2.6.18-164.el5

cpu:16coreIntel(R)Xeon(R)CPUE5620cpuMHz:2400

memory:32G

测试结果在无CM级连的情况下,单个CMServer可以同时支持:

心跳汇报节点(汇报周期100ms)10000个4/7层健康检查节点(检查周期1s)6000个

订阅节点(更新周期1s)4000个瓶颈主要是千M网卡的带宽占满性能与应用—应用性能与应用—应用管理搜索内部所有集群,14个业务线,31个集群统一搜索内部所有效劳定位和集群状态管理替换搜索内部LB负载均衡设备(近50亿PV)目录CONTENTS背景介绍1功能特性2整体架构3性能与应用4功能特性订阅心跳汇报运维管理健康检查同步ConfigServer负载均衡监控&报警PHP扩展名词说明Cluster:多个节点组成的集合称为一个ClusterCMServer:ClusterMap内部的效劳端,管理集群和节点HBNode:表示心跳汇报节点,汇报自己状态信息到CMServerSubscriber:订阅者,与CMServer通讯,获取集群信息CMSubProxy:订阅者代理,订阅者功能根底上还会写共享内存

CMCtrl:工具,用来提供集群的增/删/改,节点的上下线ConfigServer:淘宝的一个管理配置的效劳功能特性心跳汇报1/汇报类型需要预先配置的节点不需要预先配置的直接汇报的节点2/节点可以汇报心跳和负载信息,及用户自定义的数据信息3/支持一个节点对应多个集群即一个节点在多个集群中存在4/支持一个节点注册多个端口和协议功能特性健康检查节点健康检查节点不需要向CMServer汇报,CMServer会主动定期检查节点的状态是否正常包括四层健康检查,和七层健康检查同时支持一个节点对应多个集群定义4/7层健康检查协议,可以向CM返回集群系统状态〔cpu_busy等),qps,latency信息(暂未实现)功能特性同步ConfigServerCMServer上的节点信息同步到ConfigServer根据配置,可以将某些集群的信息同步的ConfigServer,方便基于Hsf/Configserver框架的Java前端,这样就可以通过ConfigServer来获取搜索后台效劳的有效节点信息,直接访问,而不再通过VIP方式访问功能特性订阅1/订阅集群方式订阅所有集群根据配置,订阅1个或多个集群2/集群的拓扑结构类似于Kingso的物理集群到拓扑集群1-1映射类似与Ups的物理集群到拓扑集群1-N映射3/支持本机房优先分配的策略4/支持订阅者为虚节点,只订阅不发心跳

5/支持多种语言的订阅(C,Php,Java,Lua,Node.js)功能特性订阅6/对外提供的查询接口allocRow获取一行节点allocValidRow获取一行有效节点allocNodeOfPartition获取一列的所有节点allocValidNodeOfPartition获取一列的所有有效节点allocNodeByPartitionId获取一个TopoCluster的某个分区中分配一个的节点6)allocValidNodeByPartitionId获取一个TopoCluster某个分区中分配一个可用的节点allocAllNode获取集群所有节点allocAllValidNode获取集群所有有效节点getNodeStatus根据节点spec获取当前节点的状态getNodeMetaInfo根据节点spec获取当前节点的MetaInfo信息getPartitionCnt获取一个TopoCluster中的分区数getNodeCntOfPartition获取一个TopoCluster中的某分区的节点数功能特性负载均衡LB_ROUNDROBIN轮询随机分配LB_RANDOMLB_WEIGHT根据权重LB_CONHASH指定行失败后,用一致性获取节点指定选取哪一行LB_LOCATING功能特性PHP扩展订阅者支持:Nginx+Php基于共享内存方式同步集群变更信息的CMSubProxy和Php

ExtensionLib订阅者支持:Nginx+Lua基于共享内存方式同步集群变更信息的CMSubProxy和LuaExtensionLib订阅者支持:TNginx基于共享内存方式同步集群变更信息的CMSubProxy和Tnginx

Module功能特性1/集群配置隔离,方便管理ClusterMap做到一个集群只在一个配置文件里,不同集群互不影响运维管理2/集群操作添加,删除,查询,上线,下线3/节点操作添加,删除,查询,上线,下线4/支持节点自动下线当节点的负载或者Qps超过节点承受能力时,CMServer可以自动下线该节点功能特性5/支持CMServer级联即一台CMServer订阅另一台CMServer上的集群6/支持CMServer主从切换不需要同步集群信息,通过的ZK的leader选举机制,进行CMServer主从切换,即当前的CMMaster效劳停掉,ZK上会立即选举一个CMMaster,新的Master会从ZK上拿到集最新的集群全量信息运维管理功能特性

监控&警报监控&&报警Zk效劳监控CMServer效劳和配置文件监控集群状态和内部节点的状态监控同步到ConfigServer上的节点信息监控WebServer上下线集群和节点查看所有的订阅者查看集群状态和内部节点的状态查看同步到ConfigServer上的节点信息目录背景介绍1功能特性3整体架构4性能与应用2整体架构整体架构ZK提供可靠的持久化存储服务与Leader选举机制实现多台Server间主从互备整体架构管理机器,负责管理集群拓扑结构、收集节点状态信息、向订阅者推送集群状态信息CMServer整体架构Server级联功能CMServer2整体架构运维管理工具:用来提供集群的增/删/改,节点的offline/online等操作CMCtrl整体架构操作集群,监控和报警WebServer整体架构定期向CMServer汇报心跳和负载信息HBNode整体架构CMServer端定期检查效劳状态、APPServer3#整体架构定期同步管理的结点信息给ConfigServerConfig

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论