首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >go-微和grpc的区别

go-微和grpc的区别
EN

Stack Overflow用户
提问于 2018-04-09 08:19:28
回答 2查看 2.1K关注 0票数 4

我已经建立了一项“微型”服务。据我所知,go-micro使用protobuf来定义和创建消息结构&使用gRPC作为网络协议(当然,在这里我可能是错的)。

如果上面的内容是正确的,那么插入的“grpc”是用来做什么的呢?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-11 03:47:33

让我试试看。

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,它们以插件的形式出现,如UDP、HTTP、GRPC等。

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

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

票数 10
EN

Stack Overflow用户

发布于 2018-04-10 13:27:47

Go-micro利用Go接口进行抽象。正因为如此,底层实现才能被交换掉。默认的go-micro使用HTTP进行通信

Go-GRPC是一个简单的包装器,用于客户机和服务器的go-micro及grpc插件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49728398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档