diff --git a/docs/tutorial-extras/_category_.json b/docs/tutorial-extras/_category_.json index 022405a..9812c39 100644 --- a/docs/tutorial-extras/_category_.json +++ b/docs/tutorial-extras/_category_.json @@ -2,6 +2,7 @@ "label": "其他组件", "position": 3, "link": { - "type": "generated-index" + "type": "generated-index", + "description": "分布式系统常用组件" } } diff --git a/docs/tutorial-extras/rpc.md b/docs/tutorial-extras/rpc.md index 733de13..ffb1e34 100644 --- a/docs/tutorial-extras/rpc.md +++ b/docs/tutorial-extras/rpc.md @@ -4,4 +4,28 @@ sidebar_position: 1 # RPC远程调用 -# \ No newline at end of file +## 什么是 RPC +> RPC 是一种通过网络将远程过程调用(Remote Procedure Call,RPC)封装成消息,并传送到远程服务器上的过程。 +> ![zhub-fun.png](https://img.1216.top/docs/zhub/rpc-flow.png) + +## 使用场景 +> 在分布式环境下,通过 RPC 可以在两个应用之间进行消息传递,实现远程调用。 + +## rpc的订阅-调用基础示例 +### 被调用端 +```java + // 订阅 rpc-b 事件, 参数类型为 String + zhub.rpcSubscribe("rpc-b", IType.STRING, r -> { + String str = r.getValue(); + System.out.println("接收到 b 事件:" + str); + return r.render("接收到 b 事件:" + str); + }); +``` +### 调用端 +```java + // 调用 rpc-b 事件, 参数类型为 String,返回类型为 String + RpcResult rpcResult = zhub.rpc("rpc-b", "hello rpc", IType.STRING); + String result = rpcResult.getResult(); + System.out.println("rpc result:" + result); +``` +