使用sofa-pbrpc只需要三步:
樣例**參見「sample/echo」。
定義協議只需要編寫乙個proto檔案即可。 範例:echo_service.proto
package sofa.pbrpc.test;
option cc_generic_services = true;
message echorequest
message echoresponse
service echoserver
使用protoc編譯'echo_service.proto',生成介面檔案'echo_service.pb.h'和'echo_service.pb.cc'。
注意:
#
include
// sofa-pbrpc標頭檔案
#include
"echo_service.pb.h"
// service介面定義標頭檔案
class echoserverimpl : public
sofa:
:pbrpc
::test
::echoserver
virtual ~echoserverimpl() {}
private
:virtual
void
echo
(google:
:protobuf
::rpccontroller*
controller,
const
sofa:
:pbrpc
::test
::echorequest*
request,
sofa:
:pbrpc
::test
::echoresponse*
response,
google:
:protobuf
::closure*
done)
};
注意:
int
main
() sofa::pbrpc::test::echoserver* echo_service = new echoserverimpl();
if (!rpc_server.registerservice(echo_service))
rpc_server.run();
rpc_server.stop();
return exit_success;
}
client支援同步和非同步兩種呼叫方式:
#
include
// sofa-pbrpc標頭檔案
#include
"echo_service.pb.h"
// service介面定義標頭檔案
int
main
() return exit_success;
}
void
echocallback
(sofa::pbrpc::rpccontroller* cntl,
sofa::pbrpc::test::echorequest* request,
sofa::pbrpc::test::echoresponse* response,
bool
* callbacked)
if (cntl->failed())
else
delete cntl;
delete request;
delete response;
*callbacked = true;}
intmain
() return exit_success;
}
注意:除了使用原生client訪問server外,sofa-pbrpc也支援使用http協議訪問server上的服務。同時,使用者可以通過使用server端的webservice工具類,快速實現server的對於http請求的處理邏輯。
sofa-pbrpc支援使用者使用http客戶端向server傳送json格式的資料請求,並返回json格式的響應。
頂 1
搜狗開源srpc 自研高效能通用RPC框架
今年 7 月底,搜狗公司開源了內部的工業級c 伺服器引擎workflow,一路收穫業內許多認可和關注。9 月 15 日,作為workflow最重要的生態專案 srpc,乙個基於其打造的輕量級rpc框架,也在github上開源了。github搜尋 sogou srpc 即可找到該專案。乙個效能更好的t...
百度開源的問答系統框架 ANYQ
github位址 anyq answer your questions 開源專案主要包含面向faq集合的問答系統框架 文字語義匹配工具simnet。問答系統框架採用了配置化 外掛程式化的設計,各功能均通過外掛程式形式加入,當前共開放了20 種外掛程式。開發者可以使用anyq系統快速構建和定製適用於特...
高效能非同步RPC框架 kiss rpc介紹和測試
1.輕量級,簡單易用。支援idl和手動編寫協議兩種方式。模擬函式式呼叫方式,更加符合rpc遠端呼叫邏輯,簡單,透明。易修改易使用,已有的 可以直接發布使用 資料格式支援向下相容 支援多值返回特性,支援超時機制,模擬grpc,thrift,dubbo快幾倍甚至 幾十倍。支援管道資料壓縮,動態資料壓縮,...