
revolver
文章平均质量分 93
revolver开源库的框架介绍、例程、特性点介绍和原理分析。
zerok775
从事linux的网络程序设计,擅长高性能高并发服务设计,对数据库存储、高并发系统和分布式存储感兴趣。
展开
-
C++高性能服务框架revolver:RUDP(可靠UDP)算法详解
上一篇BLOG已经介绍了revolver RUDP的传输性能、基本的框架和接口,这篇文章我重点讲述RUDP的实现细节。在RUDP的模块中最为重要的是其收发缓冲控制和CCC发送窗口控制、CCC发送慢启动控制、CCC快恢复控制等几个过程。数据块定义在RUDP模块中,所有发送的数据被定义成RUDPRecvSegment 和 RUDPSendSegment结构,其中RUDPSendSegm原创 2014-03-19 10:45:05 · 11273 阅读 · 3 评论 -
C++高性能服务框架revover:rudp总体介绍(可靠UDP传输)
在revolver框架中实现了一个高效可靠的RUDP通信方式,这个通信方式是基于UDP实现一种模拟TCP传输数据的行为。在很多实际应用中,udp/TCP都不是最好的通信方式,例如:点对点文件传输、视频数据高速传输、服务器之间大数据备份同步、高实时rts操作类网游等。TCP和UDP在一定程度上是无法满足此类要求。故revolver实现了一套可靠UDP的传输方式。我们先来看看它的传输效率,以下是WIN...原创 2014-03-18 17:56:40 · 14961 阅读 · 25 评论 -
C++高性能服务框架revolver:协议接口描述和翻译语言
在一个稍微复杂的系统中会涉及到多语言编程,例如:后端C++和JAVA,脚本用LUA,前端可能是C++ AS等等。所以所有模块之间的协议统一变得非常重要,这样做的目的是减少中间的调试和差错。在revolver框架中,实现了一个基于简单的接口语言来实现多语言之间接口协议的实现。所有的协议接口通过一个简单的def文件就可以将协议翻译成对应的语言程序代码,这样尽可能的避免中间环节的差错,也大大提高了编码效原创 2014-03-08 14:01:45 · 2752 阅读 · 1 评论 -
C++高性能服务框架revolver:同时支持100万个的定时事件的定时器
在高性能的服务器程序当中,定时器是必不可少的部件,而且定时器的效率是直接影响到服务的性能。在众多的开源项目中,定时器设计都有各有各的方法,例如ACE和libEvent都采用了最小堆的算法实现,还有其他的开源项目采用平衡二叉树来做定时的器管理算法。不管是最小堆还是平衡二叉树,其定时器扫描都是O(1),但定时器插入和删除都是O(logN)的复杂度。在定时事件少的情况下,这种算法是足够的,如果超过上百万原创 2014-03-03 16:16:09 · 6021 阅读 · 6 评论 -
C++高性能服务框架revolver:core结构与接口介绍
revolver的核心部件库core是基于revolver base之上进行封装的,实现TCP连接管理、消息隐射管理、服务登记和感知 、IFrame框架和插件等。以下是core的模块结构图:原创 2014-02-27 10:43:21 · 2896 阅读 · 0 评论 -
C++高性能服务框架revolver:base结构分析
revolver基础库的结构图如下:主要是三部分:reactor模块、关联组件模块、独立组件。1.reactorreactor模块主要是实现网络的分时复用设计的模块,可以在同一个线程模式下处理来自网络的读写事件、内部消息事件、定时器事件。以下是reactor的接口定义:class CReactor{public: .... void set_message_proc原创 2014-02-25 16:52:08 · 2707 阅读 · 0 评论 -
C++高性能服务框架revolver:下载、编译和工程介绍
昨天我把自己的第一个开源项目revolver代码提交到了GitHub上,revolver是一个C++开发的LINUX网络服务框架。这个代码算是我从2012年到现在的积累,开源的目的是希望高手指正问题和分享自己的一些经验,我会持续改进和优化,也希望更多的地方使用revovler。revolver框架除了基础的网络库封装以外,还是实现了网络连接管理、服务单元管理、消息隐射、协议自动化等,可以快速基于它...原创 2014-02-25 13:48:37 · 4590 阅读 · 0 评论