-
Notifications
You must be signed in to change notification settings - Fork 4k
gRPC Communication Issues with Network Intermediaries (Proxies, Load Balancers, Antivirus) #12741
Description
Hi All,
We recently migrated from CORBA to gRPC and while the transition was generally smooth, we're experiencing significant communication issues when network intermediaries are involved, such as proxies, reverse proxies, load balancers, and antivirus software.
Background:
Our application is a standalone system that handles large message payloads. When our server sends data to clients, these network intermediaries are causing several problems:
Issues Encountered:
- Stream termination: Intermediaries are closing streams prematurely
- TCP connection drops: Connections are being killed unexpectedly
- Timeout-based resets: Streams are reset after certain time thresholds, even when data is actively being transmitted
- Incomplete data delivery: Clients receive "end-of-midstream" or "stream closed" errors before receiving complete payloads
Root Cause Analysis:
Previously with CORBA, we never encountered these issues since CORBA uses the IIOP protocol. However, since gRPC uses HTTP/2, our communication is now subject to HTTP-based network policies and restrictions that these intermediaries enforce.
Current Situation:
- Suggesting network configuration changes isn't a permanent solution for us
- Our server needs to send large payloads and we cannot change our entire architecture immediately
- We considered streaming the data, but this still uses a single HTTP/2 stream, which encounters the same intermediary restrictions
Question:
Since these HTTP port restrictions are implemented for security reasons, we cannot continuously ask network administrators to modify their configurations.
Are there any gRPC-specific solutions or best practices to mitigate these issues when dealing with network intermediaries that have strict HTTP policies?
Any suggestions or guidance would be greatly appreciated.
Thanks!