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

系统管理模块分为服务(SmartService)和管理(SmartManger)两部分。SmartService基于RESTful的接口,来对外提供各类对集群的查询和操作接口,可以方便和各类管理终端(PC、iOS、Android)对接,实现界面管理。完善的框架还提供轻松的二次开发接口,方便定制系统专属接口。如:调整日志级别、单号码日志跟踪、集群配置管理、集群实时拓扑数据查询等等。几百台机器的集群,人工维护已不再现实,自动检测和自主运维已成为关键,SmartManger的自动负载管理功能就是用来完成这部分功能的。另外,系统管理模块是与状态中心、通讯平台相互配合工作的,三者缺一不可。
下面将详细介绍各个特色功能:
一、自动负载管理
根据业务容器节点为上报的时延、类型、流量等信息,综合集群所有节点的信息,判断集群目前是否存在如下情况,并根据情况做出相应的应对动作。
1. 某个容器存在故障,不能正常处理业务——故障节点退网
2. 某个容器处理能力不足,存在业务处理超时情况——对节点流量控制
3. 某类容器处理能力不足,这类容器存在业务处理超时情况——对这类容器进行扩容器操作
4. 某类容器处理能力富余,这类容器的流量满足缩容条件——对这类容器进行缩容操作
5. 集群处理能力已达极限,可能出现系统崩溃的状况——对集群进行过载保护

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

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

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

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

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

未完待续...
技术交流合作QQ群:436466587 欢迎讨论交流
(三):C++分布式实时应用框架——系统管理模块的更多相关文章
- C++分布式实时应用框架——系统管理模块
一个分布式实时系统集群动辄上百台机器,集群的规模已经限定这将是一个”封闭“的系统.你不可能再一台台去操作上百台机器,传统的人工运维方式早已不能满足当下需要,所有对集群或者集群中某个节点的操作都必需通过 ...
- (四):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 ...
随机推荐
- 全面解读JavaScript入门到进阶,100%基础知识掌握!
一.JavaScript 简介 1.JavaScript 是 Web 的编程语言,是前端开发必须掌握的三门语言之一,即: HTML 定义了网页的内容 CSS 描述了网页的布局 JavaS ...
- java.security.InvalidKeyException: Illegal key size
今天遇到一个奇怪的问题. 自己做的加签验签功能已经没有问题了,本地测试通过,同事放到服务器上测试也没问题. 然后我将包放到自己搭建的环境上,会报这样一个错误: java.security.Invali ...
- oracle11G r2 静默安装单实例(待优化版)
测试环境:centos 6.9 X64 mini 版 oracle版本:11G r2 Oracle软件包:db_112040_Linux-x86-64_1of7.zip;db_112040_Linux ...
- WPF 圖表控件 MetroChart
Torsten Mandelkow MetroChart包括以下: ColumnChart(ClusteredColumnChart,StackedColumnChart,StackedColumnC ...
- Python学习常用的好网站
以下总结出自己在学习python期间常用的网址或者资源,其中包括很多人的博客,方便自己从这个入口查找资源. 1.https://www.liaoxuefeng.com/wiki/00143160895 ...
- hash在URL上的用法及作用
阅读目录 1. # 2. ? 3. & 回到顶部 1. # 10年9月,twitter改版.一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为http ...
- jQuery Ajax跨域问题简易解决方案
场景:由于业务需求,需要在一个页面显示另外一个页面,并且右键查看源代码看不到一条链接. 实现方式:使用iframe来显示这个首页,至于首页的地址则使用jQuery Ajax来获取.html代码如下: ...
- 探索equals()和hashCode()方法
探索equals()和hashCode()方法 在根类Object中,实现了equals()和hashCode()这两个方法,默认: equals()是对两个对象的地址值进行的比较(即比较引用是否相同 ...
- 启动关闭zookeeper集群的脚本
启动hadoop Ha集群是,每次都要手动启动每个zk节点,实在是太麻烦了.于是乎自己写了个脚本startAllZK.sh: 需要启动的节点,先在 NODENAME_ARR 数组中配置好,zkServ ...
- vi 编辑器笔记
摘要: vi从安装到使用 vi从菜鸟到高手 0. vim - Vi IMproved, a programmers text editor 分为 VI和VIM,现在流行的发行版里面VI=VIM 是一个 ...