瑞安网站建设,机房建设网站,郴州市12345官网,响应式网站的登录设置准备文本文件
rpc_intro.txt
RPC(Remote Procedure Call#xff0c;远程过程调用)是一种计算机通信协议#xff0c; 允许调用不同进程空间的程序。RPC 的客户端和服务器可以在一台机器上#xff0c;也可以在不同的机器上。程序员使用时#xff0c;就像调用本地程序一样远程过程调用)是一种计算机通信协议 允许调用不同进程空间的程序。RPC 的客户端和服务器可以在一台机器上也可以在不同的机器上。程序员使用时就像调用本地程序一样无需关注内部的实现细节。不同的应用程序之间的通信方式有很多比如浏览器和服务器之间广泛使用的基于 HTTP 协议的 Restful API。与 RPC 相比Restful API 有相对统一的标准因而更通用兼容性更好支持不同的语言。HTTP 协议是基于文本的一般具备更好的可读性。但是缺点也很明显Restful 接口需要额外的定义无论是客户端还是服务端都需要额外的代码来处理而 RPC 调用则更接近于直接调用。
基于 HTTP 协议的 Restful 报文冗余承载了过多的无效信息而 RPC 通常使用自定义的协议格式减少冗余报文。
RPC 可以采用更高效的序列化协议将文本转为二进制传输获得更高的性能。
因为 RPC 的灵活性所以更容易扩展和集成诸如注册中心、负载均衡等功能。bufio.go
package mainimport (bufiofmtos
)func main() {/*bufio:高效io读写buffer缓存io: input/output将io包下的Reader,Writer对象进行封装带缓存的包装提高读写效率ReadBytes()ReadString()ReadLine()*/fileName : D:\\桌面\\projects\\goprojects\\Golang仓库\\Golang\\01-go-basic\\bufio\\rpc_intro.txtfile, err : os.Open(fileName)if err ! nil {fmt.Printf(error:%v\n, err)return}defer file.Close()// 创建reader对象b1 : bufio.NewReader(file)p : make([]byte, 1024)n1, err : b1.Read(p)fmt.Println(n1)fmt.Println(string(p[:n1]))
}
输出
1024
RPC(Remote Procedure Call远程过程调用)是一种计算机通信协议 允许调用不同进程
空间的程序。RPC 的客户端和服务器可以在一台机器上也可以在不同的机器上。程序员使
用时就像调用本地程序一样无需关注内部的实现细节。不同的应用程序之间的通信方式有很多比如浏览器和服务器之间广泛使用的基于 HTTP 协
议的 Restful API。与 RPC 相比Restful API 有相对统一的标准因而更通用兼容性
更好支持不同的语言。HTTP 协议是基于文本的一般具备更好的可读性。但是缺点也很
明显Restful 接口需要额外的定义无论是客户端还是服务端都需要额外的代码来处理而 R
PC 调用则更接近于直接调用。
基于 HTTP 协议的 Restful 报文冗余承载了过多的无效信息而 RPC 通常使用自定义的
协议格式减少冗余报文。
RPC 可以采用更高效的序列化协议将文本转为二