envoyproxy / java-control-plane

Java implementation of an Envoy gRPC control plane

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support server side xds ratelimiting for client connections

nezdolik opened this issue · comments

we at Spotify run large pool of Envoys and a single control plane per cloud region. Due to specific reasons we run single instance of control plane per region, which may be changed in future. We have hit scalability issues (related to netty buffers), when control plane got overwhelmed by too many Envoys reconnecting (after control plane restart) and requesting XDS snapshot simultaneously. For that case we have implemented XDS ratelimiting feature in control plane, that allows only N new concurrent xds streams to be establishes per second based on xds node id. The feature has been battle proven in production, it sparked some community interest and we would like to contribute such feature to java control plane library

We'd be interested in this feature at HubSpot for similar scalability reasons