Orpc是一个开源rpc框架,7days-golang系列的衍生玩具
- 原来实现了读写流的conn可以传递信息,这给年幼的我造成了巨大的打击
- 该rpc框架的调用流程:
- 启动服务端,将结构体的实例作为参数传递给服务注册的方法,随后利用反射将其方法注册进哈希表中,以前还觉得反射没啥用,现在感觉好厉害~
- 启动客户端,将启动的服务的名称和需要调用的方法的名称以及参数传入(也就是问你想要调用哪个结构体的哪个方法),内部是这样的,首先会注册一个Call,监听这个call的done,将需要调用的服务和方法名称注册进一个请求头示例,将参数传入req结构体,随后就write进去,这里利用了conn的实现了输入输出流方法的特性,使得write能让客户端和服务端通信,启动的客户端还负责接收服务端返回的信息,然后将其返回的信息保存在reply中,然后交给用户。
- 结束,这是day3完成的时候写的,之后可能会有变吧,感觉还真是神奇。
一个调用示意图,方便理解