跨平台服务器框架 grocket
本文导语: 1、跨平台 Windows 32/64、Linux 32/64、Mac OSX 2、支持多种进程与线程模型 支持多线程模型和多进程模型的同时,对于我们使用最多的以fork模型实现资源共享的方式也提供支持。 3、高性能 每一行代码都精雕细琢,TCP性能超过nginx,...
1、跨平台
Windows 32/64、Linux 32/64、Mac OSX
2、支持多种进程与线程模型
支持多线程模型和多进程模型的同时,对于我们使用最多的以fork模型实现资源共享的方式也提供支持。
3、高性能
每一行代码都精雕细琢,TCP性能超过nginx,至少也要和它持平。服务器内置HTTP协议支持,所以 可以和nginx服务器直接对比HTTP处理速度。
4、支持多语言编写服务器模块
可以用C和C++编写服务器模块。如果今后有需要,则还可以增加fastcgi和PHP等支持。
5、不要制造程序库的版本地狱 该高性能服务器框架不能尽量不要某些特定版本基础库的动态链接库,只能静态链接,否则会在将来的某天 给模块开发者制造由于版本冲突而崩溃的机会。当然如果使用前述100%兼容的新基础库就没有这个问题。
前述的基础库,同样是只要有头文件就能使用,基础库的二进制代码由服务器框架的可执行程序统一 管理,不再使用库的方式,彻底解决版本地狱的问题(这只是一个思路,还要验证)
6、服务器模块编写简单
ACE太难用了,这套服务器框架绝不能像ACE那样以一套函数库的松散形式来提供给使用者。给服务器框架 开发扩展模块并运行,所需要的全部就是一个可执行程序grocketd和一个grocket.h头文件。
模块只需要编写用户协议解析和处理代码即可,服务器框架同时支持UDP和TCP,甚至可以通过HTTP 传送,而希望启动哪个协议由模块编写者自己决定。
开发人员经过一分钟的培训后,再用一分钟就能写一个功能模块,并让该功能同时支持TCP、UDP、 HTTP。
假设功能代码行数为1行、协议解析代码为10行的话,整个业务模块代码文件的行数最少不会超过20行。 到目前为止我还没看到哪个服务框架的使用可以简单到这种程度。
只需要服务器框架提供的一个头文件即可编写服务器模块,彻底让开发人员从链接过程产生的各种 问题中解脱。
详细说明参见 demo_module 工程的源码。