在 Go 应用程序中从 net/rpc 到 gRPC 的转变

这是一篇关于 Go 应用中从net/rpc到 gRPC 的系列文章的开篇:

  • 系列文章内容:涵盖从net/rpc到 gRPC 的相关内容,包括 HTTP/2 工作原理及在 Go 中启用、实用 Protobuf 从基础到最佳实践、Protobuf 工作原理——数据编码艺术、Go 中的 gRPC:流式 RPC、拦截器和元数据等。
  • gRPC 与 Protobuf 简介

    • gRPC 是一种让不同服务快速高效通信的方式,基于.proto文件定义服务通信的蓝图,可生成客户端和服务器代码,使用 HTTP/2 作为底层协议,能更高效发送并发请求。
    • Protobuf 用于定义数据类型、字段和消息交换规则等,一个.proto文件可实现多语言兼容。
  • net/rpc 介绍

    • 是 Go 的标准库部分,使用自定义二进制协议通过 HTTP 或原始 TCP 通信,不具备 HTTP/2 的高级功能,但能简单演示 RPC 概念。
    • 服务类型和方法需导出,方法有特定参数和返回值要求,默认使用gob格式进行数据编码和解码,gob是 Go 序列化数据的方式,若要跨语言通信可更换为 JSON 格式的编解码器。
    • 客户端通过rpc.Dial连接服务器,发送包含服务名、方法名和参数的请求,请求带有序列号以保持顺序,服务器解码请求找到目标方法并处理,将结果编码后返回给客户端,客户端解码响应。net/rpc被认为是“冻结”的,现代应用更倾向于使用 gRPC。
  • 关于作者及相关内容:作者介绍了 VictoriaMetrics 是一个快速、开源且节省成本的监控服务工具,作者是 Go 爱好者,可通过X(@func25)联系,还提供了相关的 Golang 系列文章链接。
阅读 9
0 条评论