Skip to content

Latest commit

 

History

History
74 lines (51 loc) · 2.45 KB

README_cn.md

File metadata and controls

74 lines (51 loc) · 2.45 KB

ke-bear-microservice(kbms)

简介

[kbms]是一个基于libevent开发的C++11高性能网络框架,轻量且容易部署,目前主要支持HTTP协议。

特性

  1. 非阻塞异步接口都是C++11特性设计的
  2. 整个框架轻量,简洁
  3. 功能单纯,专注网络
  4. 上手简单,容易部署

项目历史

我们人工智能中心服务赋能组在实践过程中,对外提供功能主要以微服务方式,因此需要一套方便简洁的网络框架,在调研开源项目的过程中,没有发现一个合适的库来满足我们要求。结合我们自身的业务情况,理想中的C++网络框架应该满足以下几个特性:

  1. 由于组内历史传统,最好是c++
  2. 多线程,高性能网络服务器
  3. 方便灵巧,很容易部署
  4. 可以接入spring-cloud-netflix

快速入门

请见 Quick Start

示例

An echo HTTP server

#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

感谢

  1. 感谢libevent, glog, gtest, jsoncppcurlwrk等项目
  2. [kbms]深度参考了thriftevpp等项目的实现和设计,非常感谢evppthrift