z-docs/docs/tutorial-basics/rpc.md
2025-02-22 23:41:19 +08:00

37 lines
1.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
sidebar_position: 4
title: 远程调用 RPC
description: RPC 远程调用Remote Procedure CallRPC
---
# RPC远程调用
:::tip
RPC 是一种通过网络将远程过程调用Remote Procedure CallRPC封装成消息并传送到远程服务器上的过程。
:::
![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<String> rpcResult = zhub.rpc("rpc-b", "hello rpc", IType.STRING);
String result = rpcResult.getResult();
System.out.println("rpc result:" + result);
```