一个分布式实时系统集群动辄上百台机器,集群的规模已经限定这将是一个”封闭“的系统。你不可能再一台台去操作上百台机器,传统的人工运维方式早已不能满足当下需要,所有对集群或者集群中某个节点的操作都必需通过系统提供接口来完成。对于一个商用的分布式实时系统来说,如何应对突然出现的业务高峰;及时检测出集群中的故障节点并进行善后处理;对于集群内处理能力不同的节点进行负载均衡调节;系统因过大压力崩溃前进行过载保护;测试容器与运营容器同网测试的灰度发布能力等等。这些都是系统管理模块需要去解决的问题,也是一个系统能否商用,足够智能的关键指标。
系统管理模块分为服务(SmartService)和管理(SmartManger)两部分。SmartService基于RESTful的接口,来对外提供各类对集群的查询和操作接口,可以方便和各类管理终端(PC、iOS、Android)对接,实现界面管理。完善的框架还提供轻松的二次开发接口,方便定制系统专属接口。如:调整日志级别、单号码日志跟踪、集群配置管理、集群实时拓扑数据查询等等。几百台机器的集群,人工维护已不再现实,自动检测和自主运维已成为关键,SmartManger的自动负载管理功能就是用来完成这部分功能的。另外,系统管理模块是与状态中心、通讯平台相互配合工作的,三者缺一不可。
下面将详细介绍各个特色功能:
一、自动负载管理
根据业务容器节点为上报的时延、类型、流量等信息,综合集群所有节点的信息,判断集群目前是否存在如下情况,并根据情况做出相应的应对动作。
1. 某个容器存在故障,不能正常处理业务——故障节点退网
2. 某个容器处理能力不足,存在业务处理超时情况——对节点流量控制
3. 某类容器处理能力不足,这类容器存在业务处理超时情况——对这类容器进行扩容器操作
4. 某类容器处理能力富余,这类容器的流量满足缩容条件——对这类容器进行缩容操作
5. 集群处理能力已达极限,可能出现系统崩溃的状况——对集群进行过载保护
二、故障节点自动退网
在业务节点遇到不可恢复的故障不再能正常处理业务,系统管理模块将自动检出,并将故障节点退出业务集群,以保证集群正常运行。
三、节点流量控制
当某个节点处理能力不足时,如这个节点在做日志跟踪时,系统管理模块可以根据节点处理能力减少发往该节点的消息数,做实时负载均衡。
四、动态扩缩容
当某类型业务容器处理能力不够时,系统可以自动进行在线扩容,扩容期间业务不受影响。当处理能力富余时,系统也会自动进行在线缩容,以让出资源给需要业务。
五、节点过载保护
当整个集群的处理能力已经达到极限时(不能再进行扩容操作),为了防止系统崩溃,可以根据业务的情况进行过载保护,如:对初始鉴权请求进行丢弃处理。
六、灰度发布
系统支持灰度发布能力,可以让测试点节和正常业务节点同网运行,将让测试号码路由到测试节点进行处理,而不影响其它正常的号码。
C++分布式实时应用框架——系统管理模块的更多相关文章
-
(三):C++分布式实时应用框架——系统管理模块
C++分布式实时应用框架--系统管理模块 上篇:(二): 基于ZeroMQ的实时通讯平台 一个分布式实时系统集群动辄上百台机器,集群的规模已经限定这将是一个"封闭"的系统.你不可能 ...
-
(四):C++分布式实时应用框架——状态中心模块
C++分布式实时应用框架--状态中心模块 上篇:(三):C++分布式实时应用框架--系统管理模块 技术交流合作QQ群:436466587 欢迎讨论交流 版权声明:本文版权及所用技术归属smartguy ...
-
(七):C++分布式实时应用框架 2.0
C++分布式实时应用框架 2.0 技术交流合作QQ群:436466587 欢迎讨论交流 上一篇:(六):大型项目容器化改造 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同 ...
-
C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework)----(一):整体介绍
C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework) 在现今软件系统纷纷"云化"的浪潮下,各种支持" ...
-
(五):C++分布式实时应用框架——微服务架构的演进
C++分布式实时应用框架--微服务架构的演进 上一篇:(四):C++分布式实时应用框架--状态中心模块 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同意转载等行为保留法律 ...
-
(一):C++分布式实时应用框架----整体介绍
C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework) 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经 ...
-
(五):C++分布式实时应用框架——支撑复杂的业务通讯关系
C++分布式实时应用框架--支撑复杂的业务通讯关系 技术交流合作QQ群:436466587 欢迎讨论交流 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同意转载等行为保留法 ...
-
[开源]CSharpFlink(NET 5.0开发)分布式实时计算框架,PC机10万数据点秒级计算测试说明
github地址:https://github.com/wxzz/CSharpFlinkgitee地址:https://gitee.com/wxzz/CSharpFlink 1 计算 ...
-
Storm分布式实时流计算框架相关技术总结
Storm分布式实时流计算框架相关技术总结 Storm作为一个开源的分布式实时流计算框架,其内部实现使用了一些常用的技术,这里是对这些技术及其在Storm中作用的概括介绍.以此为基础,后续再深入了解S ...
随机推荐
-
如何关闭eslint
在vue-cli搭建webpack中,使用eslint进行代码规范化检查. 进行关闭,在根目录下有个.eslintignore直接将不想要检查的文件丢进去就可以了 也可以在重构的时候把它关闭掉
-
解决driver.findElement(By)运行到此处报null指针问题
1.由于自动化页面上的元素定位太多,主要是通过By来定位,而By提供了id,xpath,name差不多就可以定位到元素 可以使用一个配置文件存储页面上的定位By值,然后从配置文件获取by值,行程by方 ...
-
mac 启动apache服务
启动服务:sudo /usr/sbin/apachectl start 停止服务:sudo /usr/sbin/apachectl stop 重启服务:sudo /usr/sbin/apachectl ...
-
委托 在其他类中修改form中的控件属性
通常情况下,我们需要在其他业务类中将提示信息时时显示到主界面上,可以通过以下方式 Form1.cs using System; ; i < ; i++) { cb ...
-
tachyon with spark
spark1.2.0 tachyon0.5.0 jdk1.7 scala2.10.4 1.装好spark.tachyon.jdk.scala 2.修改spark-env.sh添加Tachyon客户端 ...
-
poj 1543 Perfect Cubes(注意剪枝)
Perfect Cubes Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 14901 Accepted: 7804 De ...
-
扎克伯格谈Facebook创业过程
第一课:Facebook的产品研发 (1)不仅注重用户体验,更关注程序本身对社会和产品的是否有益,进而对产品做出调整 (2)以学校为标准作为群组来划分,就是对产品进行了思考后决定的,不管是直觉决定还是 ...
-
Android_CodeWiki_01
记录常用代码片,以备不时之需..wkakak,开始: 1. 精确获取屏幕尺寸(例如:3.5.4.0.5.0寸屏幕) public static double getScreenPhysica ...
-
[一道搜狗输入法的面试题]C++转换构造函数和类型转换函数
今天面试遇到一道有关C++转换构造函数的题目,之前经常见到默认构造函数.拷贝构造函数.析构函数,但是从没听说过转换构造函数,隐式转换函数也是一样,C++的确是够博大精深的,学习之路很长啊! 其实我们已 ...
-
OpenGL模板 Mac Cmake OpenGL(Glut) Template
自己经常使用的一些功能做一个模板,有灯光效果,你可以用鼠标放大,围绕所述旋转坐标系的原点 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHlhbmcxOT ...