C++分布式实时应用框架——系统管理模块

  上篇:(二): 基于ZeroMQ的实时通讯平台

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

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

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

一、自动负载管理

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

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

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

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

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

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

二、故障节点自动退网

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

三、节点流量控制

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

四、动态扩缩容

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

五、节点过载保护

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

六、灰度发布

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

未完待续...

技术交流合作QQ群:436466587 欢迎讨论交流

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

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

    一个分布式实时系统集群动辄上百台机器,集群的规模已经限定这将是一个”封闭“的系统.你不可能再一台台去操作上百台机器,传统的人工运维方式早已不能满足当下需要,所有对集群或者集群中某个节点的操作都必需通过 ...

  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. windows下Maven的安装与配置

    1 安装maven前首先确认计算机已正确安装JDK2 下载maven 地址:http://maven.apache.org/download.html安装文件格式如下:apache-maven-3.0 ...

  2. vb6.0的各种SHELL,CMD内部命令、外部命令、SHELL任意文件

    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (B ...

  3. 原生js反转字符串

    //直接操作 var str='nama';var rts=str.split('').reverse().join(''); //String上拓展方法String.prototype.revers ...

  4. Android Activity生命周期概述

    1.  官网介绍 2.  Activity A 跳转 Acitvity B A:onPause --> B: onCreate --> B:onStart --> B: onResu ...

  5. 使用 Prometheus + Grafana 对 Kubernetes 进行性能监控的实践

    1 什么是 Kubernetes? Kubernetes 是 Google 开源的容器集群管理系统,其管理操作包括部署,调度和节点集群间扩展等. 如下图所示为目前 Kubernetes 的架构图,由 ...

  6. 正确理解Mysql的列索引和多列索引

    MySQL数据库提供两种类型的索引,如果没正确设置,索引的利用效率会大打折扣却完全不知问题出在这. CREATE TABLE test ( id         INT NOT NULL, last_ ...

  7. python第三课

    本节内容 1.列表 2.购物车设计思路 3.字典 1.列表 不可变类型:整型.字符串.元组tuple 可变类型:列表list.字典dict 2.购物车 3.字典

  8. 【ASP.NET MVC 学习笔记】- 01 理解MVC模式

    本文参考:http://www.cnblogs.com/willick/p/3195560.html 1.MVC模式是软件系统的一种架构模式,它将软件分为三大模块: 模型(Model):封装业务逻辑以 ...

  9. 237. Delete Node in a Linked List(leetcode)

    Write a function to delete a node (except the tail) in a singly linked list, given only access to th ...

  10. LeetCode 63. Unique Path II(所有不同路径之二)

    Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How m ...