From 366ac55e94ca2c8c8966ba807fc8d8c3c893576b Mon Sep 17 00:00:00 2001 From: rayc Date: Fri, 29 Mar 2024 10:02:46 +0800 Subject: [PATCH] =?UTF-8?q?add=20geektime=20java=20=E5=AE=9E=E6=88=98?= =?UTF-8?q?=E8=AE=AD=E7=BB=83=E8=90=A5=20Rpc=E5=9F=BA=E6=9C=AC=E7=9F=A5?= =?UTF-8?q?=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .obsidian/workspace.json | 10 ++++++---- 后端/极客时间Java实战/RPC.md | 31 +++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 后端/极客时间Java实战/RPC.md diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index a7d08d9..6575036 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -25,7 +25,7 @@ "state": { "type": "markdown", "state": { - "file": "VSCode 连接 云服务器.md", + "file": "后端/极客时间Java实战/RPC.md", "mode": "source", "source": false } @@ -98,7 +98,7 @@ "state": { "type": "backlink", "state": { - "file": "VSCode 连接 云服务器.md", + "file": "后端/极客时间Java实战/RPC.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -115,7 +115,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "VSCode 连接 云服务器.md", + "file": "后端/极客时间Java实战/RPC.md", "linksCollapsed": false, "unlinkedCollapsed": true } @@ -138,7 +138,7 @@ "state": { "type": "outline", "state": { - "file": "VSCode 连接 云服务器.md" + "file": "后端/极客时间Java实战/RPC.md" } } } @@ -162,6 +162,8 @@ "active": "7abb266d201c3bb5", "lastOpenFiles": [ "日志检索.md", + "后端/极客时间Java实战/RPC.md", + "后端/极客时间Java实战", "VSCode 连接 云服务器.md", "README.md", "web/现代WEB布局.md", diff --git a/后端/极客时间Java实战/RPC.md b/后端/极客时间Java实战/RPC.md new file mode 100644 index 0000000..ba1ab87 --- /dev/null +++ b/后端/极客时间Java实战/RPC.md @@ -0,0 +1,31 @@ +**定义:** 远程过程调用(Remote process call), 一起分布式系统的基础包含分布式系统基本功能租金:网络通信、序列化/反序列化、传输协议和服务调用 + +### RPC 演进 +#### 阶段一 +- 服务消费者 + - `RpcProtocol` + - `RpcConnector` +- 服务提供者 + - `RpcAcceptor` + - `RpcProtocol` +#### 阶段二: +#### 阶段三: + +#### 客户端组件和职责 +- `RpcClient` -- 负责导入(import) 远程接口的代理实现 +- `RpcProxy` -- 调用远程接口的代理实现 +- `RpcCaller` -- 负责编码的发送调用请求服务端并等待结果 +- `RpcConnector` -- 负责维持连接通道和发送数据到客户端 + +#### 服务端组件和职责 +- `RpcServer` -- 负责导出(export)远程接口 +- `RpcInvoker` -- 负责调用服务端接口的具体实现并返回结果 +- `RpcAcceptor` -- 负责接收客户端请求并返回请求结果 +- `RpcProcessor` -- 负责在客户端控制调用过程,包括管理调用线程池等 + +#### 通用组件和职责 +- `RpcProtocol` -- 负责协议的 **编/解码** +- `RpcChannel` -- 充当数据传输的通道 + + +