Golang grpc:它的可扩展性如何?

时间:2017-09-19 20:24:01

标签: go grpc

GRPC在Go上的可扩展性如何?

我是否可以为连接到我的服务器应用程序的每个IoT设备运行GRPC服务器?即每个进程有10-20k的GRPC服务器?

1 个答案:

答案 0 :(得分:1)

你的意思是每个服务都有一个新的grpc监听TCP端口吗? Go无法修复其可扩展性;大量的TCP侦听器在操作系统范围内存在可伸缩性问题。

如果您的意思是TCP侦听器将反向代理返回到数千个其他设备,那么Go非常适合这种情况。 Go做得好的是廉价的“线程”,因为它们不必分配完整的线程堆栈。在Go中,产生“goroutine”的成本约为4k,而不是相对于真实线程的1MB最小惩罚。

grpc旨在通过http2传输并有效地重用套接字,并有效地打包数据。