saf application framework高并发C++应用程序框架
saf (saf application framework) 是一个高并发的c++应用程序框架,它以RPC为基础,提供了动态载入模块的特性,为服务端开发人员只用关注于程序的业务逻辑,就可以实现远程方法调用,而不会关心底层的通信细节,另外,它还内置了一个简单的http server,用来查看服务器的运行状态。
特点
1:基于 google protobuf 的 RPC 框架
2:内置简单的http server用于查看系统状态
3:模块化的管理,只用在lib中增加动态库就可以达到增加rpc service的目的
结构
+--------------+ +-----------+ +------------+ /| | | | | | / | Handle Thread| --->- |Net Thread \----->| Decode |\ / +--------------+ | +-----------+\ +------------+ \ +-----------------+ / +--------------+ | \ \>| |/ | | | \ />|Dispacher Thread +-----+ Handle Thread+---->+ +-----------+ \ +------------+ / +-----------------+\ +--------------+ | | | \ | |/ \ +--------------+ | |Net Thread +----+>+ Decode / \ | | | +-----------+ \+------------+ \ | Handle Thread| | \ \ +---------+----+ | \ \ | | \ \ | | \ +--\---------+ | | \ | |<-------------------------------------+ | \ | Encode | | \ +------------+ | \ +------------+ | \| | | \ Encode +<------------------------------------------------+ +------------+
编译例子
1:下载源码,它依赖与sails公共库:
git clone --recursive https://github.com/sails/saf.git
2:执行编辑脚本:
./build.sh
3:编译测试样例:
cd example ./build_test.sh
4:运行测试,比如运行echo_sync:
./src/server ./example/echo_sync/client
5:增加子模块,配置conf/sails.json: 在modules里增加一行,name是子模块名,path是子模块动态库的路径
性能
测试一
笔记本: T6400 @ 2.00GHz, cpu num:1, cpu cores:2 服务端和客户端都运行在这台电脑上
| server handle threads | client call threads | earch threads call num | run time | |-----------------------+---------------------+------------------------+-----------| | 1 | 1 | 100000 | 0m14.674s | | 1 | 5 | 100000 | 0m30.896s | | 1 | 10 | 100000 | 1m0.848s | | 2 | 1 | 100000 | 0m14.409s | | 2 | 5 | 100000 | 0m27.911s | | 2 | 10 | 100000 | 0m50.760s |
2w tps.因为客户端和服务器在同一台电脑上,所以测试结果会比实际更低.
统计
内置http服务器的默认绑定在端口8001上,所以可以通过输入localhost:8001/stat来查看统计信息:
评论
saf application framework高并发C++应用程序框架
saf(safapplicationframework)是一个高并发的c++应用程序框架,它以RPC为基础,提供了动态载入模块的特性,为服务端开发人员只用关注于程序的业务逻辑,就可以实现远程方法调用,
saf application framework高并发C++应用程序框架
0
micronaut-coreMicronaut Application Framework
MicronautMicronaut is a modern, JVM-based, full st
micronaut-coreMicronaut Application Framework
0
Horde Application Framework
Horde Application Framework 是一个模块化的适合一般Web应用开发的框架,
Horde Application Framework
0
micronaut-coreMicronaut Application Framework
MicronautMicronautisamodern,JVM-based,fullstackJavaframeworkdesignedforbuildingmodular,easilytestabl
micronaut-coreMicronaut Application Framework
0
Horde Application Framework
HordeApplicationFramework是一个模块化的适合一般Web应用开发的框架,提供一个可扩展的类面向一些常用的问题和任务。
Horde Application Framework
0
jaws framework无服务器应用程序框架
JAWS是一个无服务器应用程序框架(Server-lessApplicationFramework)。JAWS目的是,通过AWS的Lambda服务,使应用程序无需服务器、容器、平台,重新定义如何创建大
jaws framework无服务器应用程序框架
0
bs framework新一代 C++ 游戏开发框架
bs :: framework 是一个新一代 C ++ 游戏开发框架,专注于现代技术、高质量设计和高
bs framework新一代 C++ 游戏开发框架
0