diff --git a/notes/pics/rpc-call.png b/notes/pics/rpc-call.png index b87503f2..aed2d4e2 100644 Binary files a/notes/pics/rpc-call.png and b/notes/pics/rpc-call.png differ diff --git a/tools/diagram/src/rpc-call.svg b/tools/diagram/src/rpc-call.svg index 7bd85d9b..15422027 100644 --- a/tools/diagram/src/rpc-call.svg +++ b/tools/diagram/src/rpc-call.svg @@ -31,47 +31,54 @@ 一次 RPC 调用 - - - 注册中心 - 库存服务:10.0.0.8、10.0.0.9 - - ① 订阅地址,缓存在本地 - - 启动时注册,定期发送心跳 - - 订单服务(调用方) - - inventoryService.deduct(10086, 2) - - - 代理 - 取得方法名和参数 - - - 序列化、选择实例 - 组成带请求 ID 的请求帧 - - - - 库存服务(服务方) - - - 解码请求 - 得到方法名和参数 - - - 反射调用 - InventoryServiceImpl.deduct() - - 返回 true - - - - ② 请求帧 - 请求 ID 7 + 方法 + 参数 - - ③ 响应帧 - 请求 ID 7 + 结果 - 注册中心只负责注册和发现,不转发请求;调用方按请求 ID 把响应交给对应的等待线程 + + + 注册中心 + + 库存服务 10.0.0.8 + + 库存服务 10.0.0.9 + + 订单服务(调用方) + + + + + + inventoryService.deduct(10086, 2) + 代理取得方法名和参数, + 序列化后从缓存的地址中选一个实例 + + 库存服务(服务方) + + + + + + + + + + 解码请求帧, + 通过反射调用 + InventoryServiceImpl + .deduct() + 返回 true + + + ID 7 deduct + + + ② 请求帧:请求 ID + 方法 + 参数 + + + ID 7 true + + + ③ 响应帧:请求 ID + 结果 + + ① 订阅地址,缓存在本地 + + 启动时注册,定期发送心跳 + 注册中心只负责注册和发现,不转发请求;调用方按请求 ID 把响应交给对应的等待线程