【发布时间】:2018-02-28 18:08:58
【问题描述】:
GRPC on Go 的可扩展性如何?
我可以为每个连接到我的服务器应用程序的 IoT 设备运行 GRPC 服务器吗? IE。每个进程有 10-20k 个 GRPC 服务器?
【问题讨论】:
GRPC on Go 的可扩展性如何?
我可以为每个连接到我的服务器应用程序的 IoT 设备运行 GRPC 服务器吗? IE。每个进程有 10-20k 个 GRPC 服务器?
【问题讨论】:
你的意思是每个服务都有一个新的 grpc 监听 TCP 端口吗? Go 无法解决它的可扩展性;大量 TCP 侦听器在操作系统范围内存在可伸缩性问题。
如果您的意思是一个 TCP 侦听器执行反向代理返回到数千个其他设备,那么 Go 非常适合这种情况。 Go 擅长的是廉价的“线程”,因为它们不必分配完整的线程堆栈。在 Go 中,生成一个“goroutine”的成本约为 4k,而不是相对于一个真正的线程来说是 1MB 的最低损失。
grpc 旨在通过 http2 传输并有效地重用套接字,并有效地打包数据。
【讨论】: