首页 > 解决方案 > 在 gRPC 中使用 UDP

问题描述

是否可以在 gRPC 中将 Protobuf 与 UDP 一起使用?

gRPC 接口似乎完全基于 TCP 连接。我能找到的唯一 UDP 示例是 gRPC 源代码中以下三个文件中的示例,但这个示例似乎与 gRPC 的 RPC 层提供的完全不同,例如它没有存根的概念,并且它没有'不使用 Protobuf 而是使用原始有效负载等。

src/core/lib/iomgr/udp_server.h

src/core/lib/iomgr/udp_server.cc

测试/核心/iomgr/udp_server_test.cc

标签: c++udpprotocol-buffersgrpc

解决方案


2015 年 7 月 9 日 ( grpc-go#241 )

不,我们需要一个可靠的通道并且不支持 UDP。已经讨论过使用 QUIC 之类的东西,但我们目前还没有尝试过,而且我们还需要更长的时间才能决定是否支持它。

2018 年 5 月 15 日 ( grpc#9493 )

关闭这个 - 我们目前没有计划支持不可靠的数据包。如果我们有任何特定的协议可以满足上面列出的用例,我们可能会先做一个 grfc..

2018 年 8 月 6 日 ( grpc-go#241 )

我们正在研究 grpc 和传输包之间的新接口/抽象,以实现自定义传输(UDP 可能是其中之一)。

顺便说一句,Cap'n Proto 在他们的路线图上有 UDP 。起初我以为这是个玩笑,但它是真的(……除非我仍然被拖钓),并且是由谷歌 proto2 的原作者编写的


推荐阅读