A few questions as beginner to gRPC

8 views
Skip to first unread message

Mary Zhang

unread,
Jul 25, 2024, 6:34:01 PM (2 days ago) Jul 25
to grpc.io
Hi gRPC team,

I just started to explore gRPC as a possible solution for all our client side device to device(AR and Robotic to a medical imaging device), and backend server to client side device communications including server push.

We have used WebSocket briefly with server push prototype working and device communication too. However, we've not tried any subprotocol for WebSocket yet and found gRPC may be convenient since we use Protobuf for most device communication already.

Our major concern is the gRPC server scale issue which needs managing possible several thousands of long live concurrent connections for server push to customer devices. 

Our backend servers are mainly Flask + Python now and so I am trying Python examples now. 

Here are some questions:
1. Is gRPC in Python good enough to support several thousands of long live concurrent connections? For sure, application load balancing plus a cluster of servers will do. My question is more about whether Python is a good choice for this case OR Java/GO can do much better using default gRPC implementation?

2. If Python is good enough for above case, which approach or example should I follow from grpc/examples/python on grpc github repo?

3. I've tried the helloworld and hellostreamingworld examples with some load tests too. For the hellpstreamworld which uses asyncio and stream API, I got it tested with 1000 concurrent clients and server replied with 100 messages per client yesterday on my Laptop. However, when I tried to add stats about all expected messages received and the total time today, I got error about gRPC call timeout and unavailable even after I reduced to 10 clients and 10 messages and roll back most changes. Any clue about the cause?  
 
Thank you very much!

Mary





Reply all
Reply to author
Forward
0 new messages