--- sidebar_position: 4 title: 远程调用 RPC description: RPC 远程调用,Remote Procedure Call,RPC --- # RPC远程调用 :::tip 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); ```