add geektime java 实战训练营 Rpc基本知识
parent
874f5f99a3
commit
366ac55e94
|
|
@ -25,7 +25,7 @@
|
||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "VSCode 连接 云服务器.md",
|
"file": "后端/极客时间Java实战/RPC.md",
|
||||||
"mode": "source",
|
"mode": "source",
|
||||||
"source": false
|
"source": false
|
||||||
}
|
}
|
||||||
|
|
@ -98,7 +98,7 @@
|
||||||
"state": {
|
"state": {
|
||||||
"type": "backlink",
|
"type": "backlink",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "VSCode 连接 云服务器.md",
|
"file": "后端/极客时间Java实战/RPC.md",
|
||||||
"collapseAll": false,
|
"collapseAll": false,
|
||||||
"extraContext": false,
|
"extraContext": false,
|
||||||
"sortOrder": "alphabetical",
|
"sortOrder": "alphabetical",
|
||||||
|
|
@ -115,7 +115,7 @@
|
||||||
"state": {
|
"state": {
|
||||||
"type": "outgoing-link",
|
"type": "outgoing-link",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "VSCode 连接 云服务器.md",
|
"file": "后端/极客时间Java实战/RPC.md",
|
||||||
"linksCollapsed": false,
|
"linksCollapsed": false,
|
||||||
"unlinkedCollapsed": true
|
"unlinkedCollapsed": true
|
||||||
}
|
}
|
||||||
|
|
@ -138,7 +138,7 @@
|
||||||
"state": {
|
"state": {
|
||||||
"type": "outline",
|
"type": "outline",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "VSCode 连接 云服务器.md"
|
"file": "后端/极客时间Java实战/RPC.md"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -162,6 +162,8 @@
|
||||||
"active": "7abb266d201c3bb5",
|
"active": "7abb266d201c3bb5",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"日志检索.md",
|
"日志检索.md",
|
||||||
|
"后端/极客时间Java实战/RPC.md",
|
||||||
|
"后端/极客时间Java实战",
|
||||||
"VSCode 连接 云服务器.md",
|
"VSCode 连接 云服务器.md",
|
||||||
"README.md",
|
"README.md",
|
||||||
"web/现代WEB布局.md",
|
"web/现代WEB布局.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` -- 充当数据传输的通道
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue