GRPC on Go 的可扩展性如何?
我可以为每个连接到我的服务器应用程序的物联网设备运行一个 GRPC 服务器吗? IE。每个进程有 10-20k 个 GRPC 服务器?
最佳答案
你的意思是每个服务一个新的grpc监听TCP端口? Go 无法修复它的可扩展性;大量的 TCP 监听器在操作系统范围内存在可扩展性问题。
如果你的意思是一个 TCP 监听器对数千个其他设备进行反向代理,那么 Go 非常适合。 Go 擅长的是廉价的“线程”,因为它们不必分配完整的线程堆栈。在 Go 中,产生一个“goroutine”的成本约为 4k,而不是与真实线程相比至少 1MB 的损失。
grpc 旨在通过 http2 传输并有效地重用套接字,并有效地打包数据。
关于Golang grpc : how scalable is it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46309202/