# RPC [课件](https://gitee.com/infraboard/go-course/blob/master/day15/rpc.md#json-on-http) + Go语言内置RPC框架的使用(原始) + 基于接口封装优化好的RPC + Protobuf介绍与环境准备 + Protobuf编解码与语法介绍 详细说明: RPC使用场景以及概述 Go语言内置RPC框架的基本使用 RPC 服务端开发 RPC 客户端开发 测试客户端调用服务端 基于接口来优化Go语言内置的RPC服务 Go编码与跨语言RPC Go语言内置RPC实现JSON ON TCP Go语言内置RPC实现JSON ON HTTP Protobuf概述 Protobuf环境搭建与Go语言插件安装 Protobuf 快速体验: 使用Protobuf生成Go语言代码 Protobuf 语法详解: 定义消息类型 Protobuf类型与Go语言类型对应关系 枚举类型/数组类型/Map等基础类型的使用 消息嵌套与限制 Protobuf的包机制以及使用方式 使用限制与更新规范 ## RPC 概念 ![alt text](image.png) RPC是远程过程调用的简称,是分布式系统中不同节点间流行的通信方式。在互联网时代,RPC已经和IPC一样成为一个不可或缺的基础构件。 ```sh echo -e '{"method":"HelloService.Hello","params":[{"my_name":"bob"}],"id":1}' | nc localhost 1234 ```