go-rpc概要与暂停更新说明

Posted 一眼花开

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go-rpc概要与暂停更新说明相关的知识,希望对你有一定的参考价值。

当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放

暂停


由于最近工作上面需要赶进度,另外也有些个人事情需要处理。本订阅号将暂停2周更新哈~,五一劳动节过后再更新。谢谢大家的理解~~


先简单说下我的RPC实现思路,具体可以看我的github代码:https://github.com/polariseye/rpc-go.git。


设计初衷:

  1. 同一个链路可以两边RPC(当然这个使用不当也会有陷阱)

  2. 能够比较方便地在其他语言中实现client端

  3. 能够方便扩展序列化反序列化的实现(比如Bson)

4. 使用简单,客户端和服务端在对外接口上面应该是保持一致的(因为是双向RPC)


采用分层实现:

  1. 协议部分处理:RpcConnection 协议处理和请求应答包解析

  2. 事件监听:RpcWatcher 提供对整个rpc过程的响应处理

  3. 客户端包装:RpcClient 客户端连接时使用

  4. 服务端包装:RpcServer 服务端连接管理的包装


实现了两种对象序列化解析:

  1.  Json序列化反序列化实现 JsonConvertor

  2. protobuf序列化反序列化实现 ProtobufConvertor


待完善的内容:

  1. 底层协议解析部分没有做内存管理,会带来较多的GC

2. 如果返回值为nil,则会直接跳过。而client端直接会使用默认值(这个可以业务要求不能为nil)

  3. 代码注释和文档需要后续再完善


结语:

1. 整个实现已初步完成功能性测试。欢迎大家试用和反馈问题哈


以上是关于go-rpc概要与暂停更新说明的主要内容,如果未能解决你的问题,请参考以下文章

第七弹——概要设计与详细设计文档的修改

软件概要设计做什么

《数据结构》测验系统概要设计说明书

软件概要设计做什么,怎么做

概要设计说明书

软件概要设计