Skip to content

qq911712051/Hrpc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

No packages published