[kbms]是一个基于libevent开发的C++11高性能网络框架,轻量且容易部署,目前主要支持HTTP协议。
- 非阻塞异步接口都是C++11特性设计的
- 整个框架轻量,简洁
- 功能单纯,专注网络
- 上手简单,容易部署
我们人工智能中心服务赋能组在实践过程中,对外提供功能主要以微服务方式,因此需要一套方便简洁的网络框架,在调研开源项目的过程中,没有发现一个合适的库来满足我们要求。结合我们自身的业务情况,理想中的C++网络框架应该满足以下几个特性:
- 由于组内历史传统,最好是c++
- 多线程,高性能网络服务器
- 方便灵巧,很容易部署
- 可以接入spring-cloud-netflix
请见 Quick Start
#include "http_server.h"
int main(int argc, char* argv[]) {
uint32_t port = 12138;
uint32_t thread_num = 5;
if(!kbms::HttpServer::Instance()->Init(port,thread_num)){
std::cerr<<"initalize global resource failed."<<std::endl;
return 0;
}
kbms::HttpServer::Instance()->RegisterDefaultFun(&DefaultHandler);
kbms::HttpServer::Instance()->RegisterFun("/echo",[](const kbms::HttpContextPtr& ctx,const kbms::HTTPSendResponseCallback& cb)
{ cb(ctx->BodyByString()); });
kbms::HttpServer::Instance()->StartServer();
while (true) {
usleep(1);
}
return 0;
}
更多示例可参考 examples