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

  C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework)

版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同意转载等行为保留法律追究的权利!

 在现今软件系统纷纷“云化”的浪潮下,各种支持“云化”的框架、工具层出不穷,但这些现成的工具大多基于JAVA,go等语言,且应用场景均为非实时系统。但基于C++语言,且支持毫秒级响应、大吞吐量的分布式实时应用框架一直是这一领域的空白,Cpp Distributed Real-time Application Framework(CDRAF)也因此应运而生。

   我们致力于将CDRAF打造成一款通用C++分布式实时系统框架,使之可以服务于任何一款对响应、吞吐量有高要求的业务系统——不管是游戏后台系统或者电信行业系统等等。用户只要将原有业务代码基于CDRAF做少许改动,就可以使用系统轻松地获得所有"分布式实时系统"所具备的特性,如:

  • 大吞吐量、低时延、模式多样、稳定可靠的通讯平台
  • 新节点启动后自动注册联网,旧节点无需重启
  • 计算节点根据业务量自动动态扩缩容
  • 单点故障不影响集群,故障节点自动检测,自动退网
  • 节点实时性能统计数据,自动上报
  • 自动负载均衡,不同节点根据自身处理能力自动进行负载
  • 过载保护,预防系统因流量过大而发生阻塞甚至引发宕机
  • 优雅启停,双通道消息线路保证启停过程中不丢消息
  • 灰度发布,支持测试节点与正常业务节点同网测试
  • 提供集群节点管理Restful接口,方便用户做节点管理的二次开发

  CDRSF核心由三个部分构成,分别是:通讯平台、状态中心、系统管理。如下图所示:

通讯平台:

➢    具备低时延(毫秒级)、高吞吐量(200000pps/s级)的通讯能力

➢    提供多样化通讯方式(点对点、广播、分发、单双通道等)满足各种业务需求

➢    完全配置式的节点通讯关系,通讯与业务程序完全解耦

➢    实时性性能统计输出,实时应用程序监控管理

状态中心:

➢    提供新节点自动发现联网运行,故障节点自动检测退网的能力

➢    各业务节点主动上报详细的运行状态数据,实时监控全网节点运行信息

➢    具备向各业务节点下发管理命令能力

➢    注册、触发机制保证所有命令、数据即刻到达

系统管理:

➢    实现系统的自主管理及外部对系统的管理

➢    自主管理提供了动态扩缩容、节点过载保护、故障节点重启等能力

➢    外部管理通过RESTful接口,提供了外部对系统进行各种操作的能力

(如:优雅关停节点、开关日志、单号码日志跟踪、容器测试等等)

整体系统架构图:

  通讯平台负责所有业务进程的通讯,包括进程间和节点间的通讯。SmartMonitor还可实时监控业务进程的心跳健康状况,实时统计性能数据。SmartAgent实时上报每个节点的各种数据到状态中心,并接受状态中心下达的命令。SmartService根据系统运行状况,对整个集群进程管理,同时也接受来自外部的命令,对系统进程各种操作。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏知晓程序

小程序用起来耗流量吗? | 小程序问答 #5

1292
来自专栏ATYUN订阅号

【业界】PureSec数据显示:五分之一的开源无服务器应用程序存在严重漏洞

根据PureSec的数据显示,超过20%的开源无服务器应用程序存在严重的安全漏洞。 对1000个开源无服务器项目的评估显示,其中21%包含一个或多个严重漏洞或错...

2786
来自专栏企鹅号快讯

补丁管理:不要以持续运行时间为自豪

在补丁管理方面一些 Linux 系统管理员和 Windows 系统管理员没有差别。实话说,在一些方面甚至做的更差(特别是以持续运行时间为自豪)。 -- Kyle...

2159
来自专栏FreeBuf

基于代理IP的挖掘与分析

? 废话不多说,直入主题。关于代理IP的挖掘与分析,个人的一些分析与总结。 1. 思路 1、获取代理地址 2、对获取的代理地址进行验证,提取出真实可用的代理地...

6027
来自专栏码洞

深入理解RPC——RPC在企业服务中的核心价值

随着企业 IT 服务的不断发展,单台服务器逐渐无法承受用户日益增长的请求压力时,就需要多台服务器联合起来构成「服务集群」共同对外提供服务。同时业务服务会随着产品...

941
来自专栏Java技术分享

Redis集群方案应该怎么做?

目前Redis server端还没有出集群方案。客户端的集群方案,有没有一种方案,可以做sharding,同时也可以做主备,主机挂了,slave能自动顶上。有没...

2437
来自专栏小古哥的博客园

H5canvas赛车游戏-基于lufylegend引擎

lufylegend引擎是canvas游戏中,比较简单的引擎之一,它不需要配置环境,类似引入jquery包的方式,引用对应js文件即可 lufylegend官方...

3074
来自专栏Java后端技术栈

为什么说程序员到了不得不掌握RPC的时候了!

随着企业 IT 服务的不断发展,单台服务器逐渐无法承受用户日益增长的请求压力时,就需要多台服务器联合起来构成「服务集群」共同对外提供服务。同时业务服务会随着产品...

1392
来自专栏携程技术中心

干货 | 高吞吐消息网关的探索与思考

作者简介 刘惊惊,唯品会业务架构部高级架构师。主要负责用户线,营销线的业务架构,也参与库存系统的重构改造。 一、背景介绍 唯品会是一家立足于“全球精选,正品特卖...

3374
来自专栏Crossin的编程教室

【我问 Crossin】Crossin 这个名字是什么意思?

1 新建 git 项目是用 git init 还是 git clone,git init 和 git clone 都是创建新仓库,两个有什么区别? git in...

3719

扫码关注云+社区

领取腾讯云代金券