go-micro 和 go-grpc 的区别

Difference between go-micro and go-grpc

我构建了一个"go-micro"服务。据我了解,go-micro 使用 protobuf 来定义和创建消息结构并使用 gRPC 作为网络协议(当然我在这里可能是错误的)。

如果以上内容正确,那么插件 "go-grpc" 的用途是什么?

谢谢!

Go-micro 使用 Go 接口进行抽象。因此,可以换出底层实现。默认 go-micro 使用 HTTP 进行通信

Go-GRPC 是 go-micro 的简单包装器以及客户端和服务器的 grpc 插件。

我来试试

RPC只是一种方法调用模型,只要能从本地调用远程服务,就可以说是某种RPC。

RPC 有不同的风格,因为客户端和服务可以使用不同的协议进行通信,例如 UDP、TCP、HTTP、HTTP/2。

protobuf和JSON、XML一样,只是数据交换格式,除了json和xml是基于文本的,而protobuf是基于字节的,保存大量带宽和序列化时间。

所以放在一起,我们可以把这两个结合起来,形成各种RPC。例如,通过 UDP 发送 JSON 数据是一种 RPC 形式,通过 TCP 发送 XML 数据是另一种形式,通过 UDP 发送 Protobuf 数据又是一种形式。

GRPC 是一种通过 HTTP/2 协议发送 Protobuf 数据的 RPC 形式。

go-micro是一个微服务框架,服务通过RPC进行通信,所以go-micro为开发者提供了各种RPC选择,它们以Plugins的形式出现,如UDP、HTTP、GRPC等。

GRPC 是一种通信模型,可以用 C++、JAVA、Go 等大多数语言实现。因此Go-GRPC是一个用go语言编写的GRPC插件

希望我解释清楚,如有错误请指正,