How scalable is GRPC on Go?
Can I run a GRPC server for every IoT device connected to my server app? I.e. have 10-20k of GRPC servers per process?
How scalable is GRPC on Go?
Can I run a GRPC server for every IoT device connected to my server app? I.e. have 10-20k of GRPC servers per process?
do you mean a new grpc listening TCP port for each service? Go can't fix the scalability of that; huge numbers of TCP listeners has scalability issues at the scope of the operating system.
If you instead mean a TCP listener doing a reverse proxy back to thousands of other devices, then Go is a pretty good fit for that. What Go does well is cheap "threads", because they don't have to allocate full thread stacks. In Go, spawning a "goroutine" costs about 4k, rather than being a 1MB minimum penalty vs a real thread.
grpc is designed to tranpsport over http2 and reuse the socket efficiently, and pack data efficiently.