gpt4 book ai didi

protocol-buffers - go-micro 和 go-grpc 的区别

转载 作者:行者123 更新时间:2023-12-03 23:38:53 24 4
gpt4 key购买 nike

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

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

谢谢!

最佳答案

让我试一试。

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

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

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

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

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

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

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

希望我解释清楚,如果我错了,请纠正我,

关于protocol-buffers - go-micro 和 go-grpc 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49728398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com