Skip to content

nds15763/xrpc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xrpc

基于TCP的RPC框架

RPC框架包含几大部分

一、通讯

1、协议:TCP和HTTP2的优劣 TCP包较小,有更好的传输速率,但易用性没有HTTP2好 HTTP2虽然会稍微占一些流量,但是由于其具有一些链路复用,头部压缩等新特性,速度应该并不比TCP差不多少。 (我没试过) 但是这里为了学习还是使用TCP

2、加密 我因为不太了解这部分,只简单选用对称加密了。

3、yamux yamux是一个链接复用库,可以使一个物理的TCP链接虚拟出多个逻辑链接,从而提高传输效率 源码阅读我有提交简书,不过这两天发不了文。

原理是利用一个可配置大小的buffer数组(可以理解为申请的内存块),通过随时判断数组占用大小, 使用channel去通知各个逻辑流的读写进度,多读少写。

4、链接池 虽然使用yamux可以虚拟逻辑链接,但每一个TCP链接的发送速率是有限的,这里还是需要管理一个TCP的连接池。

二、远程调用

就直接用net/rpc了,包括反射和注册,如果需要改的话只把注册部分重写一下就好了。

三、服务发现和注册 因为前期并不涉及业务,不会纠结一致性还是可用性,所以直接就consul就好了。 还支持windows系统,有什么比一个exe文件摆在你面前更香的事呢。

About

基于TCP的RPC框架

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages