qq911712051/Hrpc
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
这是一个简单的RPC通信框架 HRPC(HNU-RPC) 用来学习C++, 以及用作大学本科毕业设计项目的底层通信框架 具体使用方法在example/中可以看到 服务端支持Hrpc协议,类似于直接函数调用 (框架默认没有进行添加, 需要用户自己添加Hrpc协议) 服务端支持用户自定义协议,服务端进行处理时会对协议名称进行反射处理,以用来进行正确的处理 服务端支持用户自定义的心跳协议 服务端和和客户端均支持网络参数配置文件, 框架启动时自动读取相关配置文件, 具体的配置模板文件 在主页可见 编译环境要求: CMake: 2.8+ gcc: 4.9+ (支持c++11) 编译方法: 1. 进入项目目录, 建立编译文件夹 # cd HRPC # mkdir build 2. 编译Hrpc项目 # cd build # cmake ../ # make 3. 安装到相关目录 # sudo make install 默认安装到/usr/local 使用方法: 1. 编写hrpc接口描述文件 2. 通过tools中的parser转译器 将接口语言 转化为 c++语言 3. 服务端实现相应的接口即可, example/HelloWorld 详见具体用法 严重缺陷: 1. 没有编写成型的日志系统, 所以。。。所有的日志都是通过std::cout 和 std::cerr 实现的,而且还没有时间戳。。。 因此可以想象到 日志输出时 可以看到不同线程日志 "相互交措" 情形! 框架目前存在的问题: 1. 服务端仅支持同步处理, 也就是说, 每一个处理线程 必须完全处理完一个请求后才能处理其他的请求。 某些情况下会出现问题, 如业务处理时 存在延迟, 那会导致所属的 业务线程阻塞。 2. 接口转译器目前仅支持 转译class, 目前还不支持enum以及其他的自定义struct数据结构 3. 目前Hrpc仅支持tcp协议,服务端网络架构采用的reacotr模型 4. 目前进行hrpc协议通信时, 必须要自己配置通信对象的远程地址以及端口,没有提供主控等服务 正在开发: 1. 服务端 业务线程 支持请求的异步处理, 即支持异步返回操作 2. 接口转译器升级, 支持enu枚举变量, 支持struct 用户自定义结构变量 3. 编写成型的日志系统, 支持日志分页等功能
About
这是一个简单的rpc核心框架
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published