一个分布式实时系统集群动辄上百台机器,集群的规模已经限定这将是一个”封闭“的系统。你不可能再一台台去操作上百台机器,传统的人工运维方式早已不能满足当下需要,所有对集群或者集群中某个节点的操作都必需通过系统提供接口来完成。对于一个商用的分布式实时系统来说,如何应对突然出现的业务高峰;及时检测出集群中的故障节点并进行善后处理;对于集群内处理能力不同的节点进行负载均衡调节;系统因过大压力崩溃前进行过载保护;测试容器与运营容器同网测试的灰度发布能力等等。这些都是系统管理模块需要去解决的问题,也是一个系统能否商用,足够智能的关键指标。

  系统管理模块分为服务(SmartService)和管理(SmartManger)两部分。SmartService基于RESTful的接口,来对外提供各类对集群的查询和操作接口,可以方便和各类管理终端(PC、iOS、Android)对接,实现界面管理。完善的框架还提供轻松的二次开发接口,方便定制系统专属接口。如:调整日志级别、单号码日志跟踪、集群配置管理、集群实时拓扑数据查询等等。几百台机器的集群,人工维护已不再现实,自动检测和自主运维已成为关键,SmartManger的自动负载管理功能就是用来完成这部分功能的。另外,系统管理模块是与状态中心、通讯平台相互配合工作的,三者缺一不可。

  下面将详细介绍各个特色功能:

一、自动负载管理

  根据业务容器节点为上报的时延、类型、流量等信息,综合集群所有节点的信息,判断集群目前是否存在如下情况,并根据情况做出相应的应对动作。

  1.  某个容器存在故障,不能正常处理业务——故障节点退网

  2.  某个容器处理能力不足,存在业务处理超时情况——对节点流量控制

  3.  某类容器处理能力不足,这类容器存在业务处理超时情况——对这类容器进行扩容器操作

  4.  某类容器处理能力富余,这类容器的流量满足缩容条件——对这类容器进行缩容操作

  5.  集群处理能力已达极限,可能出现系统崩溃的状况——对集群进行过载保护

二、故障节点自动退网

  在业务节点遇到不可恢复的故障不再能正常处理业务,系统管理模块将自动检出,并将故障节点退出业务集群,以保证集群正常运行。

三、节点流量控制

  当某个节点处理能力不足时,如这个节点在做日志跟踪时,系统管理模块可以根据节点处理能力减少发往该节点的消息数,做实时负载均衡。

四、动态扩缩容

  当某类型业务容器处理能力不够时,系统可以自动进行在线扩容,扩容期间业务不受影响。当处理能力富余时,系统也会自动进行在线缩容,以让出资源给需要业务。

五、节点过载保护

  当整个集群的处理能力已经达到极限时(不能再进行扩容操作),为了防止系统崩溃,可以根据业务的情况进行过载保护,如:对初始鉴权请求进行丢弃处理。

六、灰度发布

  系统支持灰度发布能力,可以让测试点节和正常业务节点同网运行,将让测试号码路由到测试节点进行处理,而不影响其它正常的号码。

C++分布式实时应用框架——系统管理模块的更多相关文章

  1. (三):C++分布式实时应用框架——系统管理模块

    C++分布式实时应用框架--系统管理模块 上篇:(二): 基于ZeroMQ的实时通讯平台 一个分布式实时系统集群动辄上百台机器,集群的规模已经限定这将是一个"封闭"的系统.你不可能 ...

  2. (四):C++分布式实时应用框架——状态中心模块

    C++分布式实时应用框架--状态中心模块 上篇:(三):C++分布式实时应用框架--系统管理模块 技术交流合作QQ群:436466587 欢迎讨论交流 版权声明:本文版权及所用技术归属smartguy ...

  3. (七):C++分布式实时应用框架 2.0

    C++分布式实时应用框架 2.0 技术交流合作QQ群:436466587 欢迎讨论交流 上一篇:(六):大型项目容器化改造 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同 ...

  4. C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework)----(一):整体介绍

    C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework) 在现今软件系统纷纷"云化"的浪潮下,各种支持" ...

  5. (五):C++分布式实时应用框架——微服务架构的演进

    C++分布式实时应用框架--微服务架构的演进 上一篇:(四):C++分布式实时应用框架--状态中心模块 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同意转载等行为保留法律 ...

  6. (一):C++分布式实时应用框架----整体介绍

    C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework) 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经 ...

  7. (五):C++分布式实时应用框架——支撑复杂的业务通讯关系

    C++分布式实时应用框架--支撑复杂的业务通讯关系 技术交流合作QQ群:436466587 欢迎讨论交流 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同意转载等行为保留法 ...

  8. [开源]CSharpFlink(NET 5.0开发)分布式实时计算框架,PC机10万数据点秒级计算测试说明

    github地址:https://github.com/wxzz/CSharpFlinkgitee地址:https://gitee.com/wxzz/CSharpFlink  1         计算 ...

  9. Storm分布式实时流计算框架相关技术总结

    Storm分布式实时流计算框架相关技术总结 Storm作为一个开源的分布式实时流计算框架,其内部实现使用了一些常用的技术,这里是对这些技术及其在Storm中作用的概括介绍.以此为基础,后续再深入了解S ...

随机推荐

  1. 洛谷P1527 [国家集训队] 矩阵乘法 [整体二分,二维树状数组]

    题目传送门 矩阵乘法 题目描述 给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数. 输入输出格式 输入格式: 第一行两个数N,Q,表示矩阵大小和询问组数: 接下来N行N列一共N* ...

  2. python 与 mongodb的交互--更新操作

    这里只要讨论python与mongod交互的时候insert的问题: from pymongo import * def insert_func(): try: client_obj= MongoCl ...

  3. grunt自动化

    1.安装模块 npm install grunt -g npm install grunt-cli -g #! --save-dev 既会把模块安装到项目node_modules下,也会安装到依赖文件 ...

  4. JS (function (window, document, undefined) {})(window, document)的真正含义

    原文地址:What (function (window, document, undefined) {})(window, document); really means 按原文翻译 在这篇文章中,我 ...

  5. 【二分】【动态规划】Gym - 101156E - Longest Increasing Subsequences

    求最长上升子序列方案数. 转载自:http://blog.csdn.net/u013445530/article/details/47958617,如造成不便,请博主联系我. 数组A包含N个整数(可能 ...

  6. 【DFS好题】BZOJ1999- [Noip2007]Core树网的核(数据加强版)

    NOIP的数据好水,一开始有好几个错结果NOIP数据就水过了?? [题目大意] 求无根树的直径上一段不超过S长的链,使得偏心距最小.具体概念见原题. [思路] 首先明确几个性质: (1)对于树中的任意 ...

  7. 移动web开发经验总结(1)

    1.<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, minimum-sca ...

  8. MyTalkStuffHomeIcon-2

    圆形.高清头像素材专用-2

  9. 使用Layui和Vue实现分页

    原理就是利用Layui的分页组件和Vue组件的模板渲染功能. 我下面直接贴代码,比较直观. index.html <!DOCTYPE html> <html> <head ...

  10. 匹配<a href="url">content</a>

    grep -Po '<a href="(.*.rmvb")>(.*)</a>' te.txt | sed -n 's/<a href=\(.*\)&g ...