2014年01月24日 星期五 17:50
对于中小型互联网应用,开发语言并不会成为系统性能的瓶颈,但对于大型互联网应用,开发语言的影响就至关重要了。使用C++开发WEB服务是规避此瓶颈的杀手锏。cppcms是一套C++语言的Library,主要用于开发WEB应用,提供http、fastcgi、scgi协议的支持,可以很方便的融入现有的架构体系中。cppcms内置JSON_RPC的支持,可以快速构建高性能的JSON_RPC服务。
一个简单的JSON_RPC服务示例代码如下:
#include <cppcms/application.h> #include <cppcms/applications_pool.h> #include <cppcms/service.h> #include <cppcms/http_response.h> #include <cppcms/rpc_json.h> #include <exception> #include <iostream> using namespace std; using cppcms::rpc::json_rpc_server; using cppcms::rpc::json_method; class json_service : public json_rpc_server { public: json_service(cppcms::service &srv) : json_rpc_server(srv) { bind("sum",json_method(&json_service::sum,this),method_role); bind("div",json_method(&json_service::div,this),method_role); } void sum(int x,int y) { return_result(x+y); } void div(int x,int y) { if(y == 0) { return_error("Division by zero."); } else { return_result(x/y); } } }; int main(int argc,char **argv) { try { cppcms::service srv(argc,argv); srv.applications_pool().mount( cppcms::applications_factory<json_service>() ); srv.run(); } catch (exception const &e) { cerr << e.what() << endl; } return 0; }
使用curl作为客户端调用服务的示例:
curl -v -H "Content-Type: application/json" -d '{"method":"sum","params":[100,1000],"id":1}' http://localhost:8080/json_services
参考资料:
Zeuux © 2024
京ICP备05028076号