热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

自建RPC都需要哪些功能?

现在已经有很多完善的开源rpc架构了,如果要理解程序如何能高效稳定运行,理解rpc建立的过程很有必要,自建过程大致可以分成两部分,通信部分和协调部分。
现在已经有很多完善的开源rpc架构了,如果要理解程序如何能高效稳定运行,理解rpc建立的过程很有必要,自建过程大致可以分成两部分,通信部分和协调部分。

通信部分有服务端和客户端,服务端监听约定好的端口,等待连接,客户端建立与服务端的链接。为了信息高效传输,数据需要序列化之后传输,接收后反序列化。

有了以上两个需求,总结一些服务端和客户端的功能。

服务端功能可以有:监听端口、响应连接请求、接收数据包、解析数据包、调用响应方法、组装请求处理结果数据包、发送结果数据包;客户端功能可以有:建立连接、组装数据、发送数据包、接收处理结果数据包、解析数据包返回结果。

到此一个简单的rpc功能就完成了。

作为生产级别的产品,只有核心通信功能是不够用的,还需要协调管理功能,让功能稳定高效运行。

需要连接池加快链接建立的速度,集群部署的消费者需要负载均衡,集群中的节点需要路由管理,需要时刻维护服务状态,剔除错误节点,需要优雅关闭,避免重启导致消息丢失,需要过载保护,丢弃超时请求等等。

好了综上所述,再总结一下消费者和生产者的功能需求。

消费者可以有:连接管理、负载均衡、请求路由、超时处理、健康检查;生产者可以有:线程池、超时丢弃、优雅关闭、过载保护。

以上是总结的自建rpc需要的功能,有遗漏欢迎补充。


推荐阅读
author-avatar
zealyw
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有