游戏中Dubbo类的RPC设计时的注意要点

一.消费方

1.需要使用到动态代理,代理指定的接口,这样子接口被调用时,就可以拿到:"类名+ 方法名+参数+返回值" 这些类型。

2.既然是rpc,那么接口被调用时,肯定在动态代理中会进行网络消息的发送,由于是远程调用,那么必然动态代理的proxy参数其实是用不到的,因为返回的话,是依赖于远程的服务提供者。

3.阻塞,等待消息的返回,支持超时。

二.服务提供者

1.必然要注册到zk中,其实就是本地一个Map,知道了调用者想调用啥时,知道具体的实现。也就是维护了一个Map<String, InterfaceImpl>的map。

2.消费者通过网络 把想要调用的信息传递过来后,服务提供者就找到实现,从而调用,调用后,再返回。

三、请求返回统一封装

RpcRequest

RpcResponse

为啥要封装下呢?

对于Request,这是因为有一些共性,比如:消费者需要存储"类名+ 方法名+参数+返回值"。

对于Response,则要告诉是否调用成功,还是说超时了。

四、序列化

我们这里采用kryo,因为我们希望是二进制级别的,而且是: 在修改签名时,我们不希望再直接生成下proto。

相关推荐
裕晟资质规划10 小时前
三类资质变更报告时限差在哪?军工 15 日、集成印制 10 日
大数据·服务器·网络
96245610 小时前
Go EVM 链上数据平台实践:从 RPC Demo 到可演进架构
rpc·架构·golang
轻舟技术A10 小时前
Provider 不属于 Agent 核心:rpi 的分层理由与收益
服务器·网络
Escalating_xu10 小时前
【Linux 网络编程】TCP Socket 编程(上):从 listen、accept 到完整回显通信
linux·网络·tcp/ip
NetX行者10 小时前
Python 工程化入门:从脚本到规范的 Python 项目结构
网络·python
Yang961110 小时前
从相位噪声到实时带宽:HD-063B支撑的频谱实验项目
网络
happyprince10 小时前
01-整体观-DeepSeek-V4.1-Flash全貌解读
网络
是真的小外套11 小时前
2023年软考中级信息安全工程师|选择题考点+5道案例分析真题解析(含答案)
java·服务器·网络
一条泥憨鱼12 小时前
【计算机网络】| 从 MAC 到 NAT 的跨网段通信全链路
服务器·网络·学习·计算机网络·macos
Moyu_Friday12 小时前
网络安全基础-计算机网络应用与协议
网络协议·计算机网络