我已经建立了一项“微型”服务。据我所知,go-micro使用protobuf来定义和创建消息结构&使用gRPC作为网络协议(当然,在这里我可能是错的)。
如果上面的内容是正确的,那么插入的“grpc”是用来做什么的呢?
谢谢!
发布于 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插件。
希望我能解释清楚,如果我错了就纠正我,
发布于 2018-04-10 13:27:47
Go-micro利用Go接口进行抽象。正因为如此,底层实现才能被交换掉。默认的go-micro使用HTTP进行通信
Go-GRPC是一个简单的包装器,用于客户机和服务器的go-micro及grpc插件。
https://stackoverflow.com/questions/49728398
复制相似问题