一款高性能的rpc网络框架。独创Fson协议,使用无锁任务流线程池、Reactor模型,内存管理,五脏俱全。

地址:https://gitee.com/swair/frpc.git

  1. Fson协议
    类型标记
    目前有以下8种类型标记
    ​ byte 0
    ​ char 1
    ​ short 3
    ​ int 4
    ​ long 5
    ​ double 6
    ​ string 10
    ​ Fson 99
    Fson协议格式
    Fson协议的最开始16位为<key, value>对的数量,紧接着以16位为单元依次存储key和value的大小,其中value需要存储类型,故+1
    | 0 1 | 2 3 | 4 5 |…|koffset+ksize|valuetype|voffset+vsize|…|…|
    |kvnum|ksize|vsize+1|…| key | vtype | value |…|…|
    举例
    exp. { “k1”:“v1”, “k2”: 123, “wav”:0xff0xmm}

    由于一共3组键值对,所以kvnum值为3,| 0 1 |位置16个字节存储3;
    k1为2个字节,v1也是2个字节,所以| 2 3 |区间位置存储2,| 4 5 |区间位置存储2+1=3;
    k2为2个字节,v2是当做int存储,就是4个字节,所以| 6 7 |区间位置存储2,| 8 9 |区间位置存储4+1=5;
    wav为3个字节,v2是当做byte存储,就是2个字节,所以| 6 7 |区间位置存储3,| 8 9 |区间位置存储2+1=3;
    接着,就是存储键值对的实际值了,最终如下

    |-num-|-------------------head------------------|---------------body-----------------------------------|
    |kvnum|k1size|v1size|k2size|v2size|k3size|v3size| k1 |type| v1 | k2 |type| 123 | wav |type| ffmm|
    | 0 1 | 2 3 | 4 5 | 6 7 | 8 9 | 10 11| 12 13|14 15| 16 | 17 18|19 20|21 |22|23|24|25|26|27 |28|29|
    | 3 | 2 | 3 | 2 | 5 | 3 | 3 | k 1 | 10 | v 1 | k 2 | 4 | 123 | w a v |0 |ff mm|

2、无锁线程池
3、内存管理
4、Reactor网络模型
5、编译&运行
​ make

​ ./remote_call_server

​ ./remote_call_client

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值