I'm trying to understand the difference between MAX_CONCURRENT_STREAMS and maxConcurrentCallsPerConnection. I read that most servers set MAX_CONCURRENT_STREAMS to 100 as a default whereas maxConcurrentCallsPerConnection according to the GRPC docs defaults to no limit.
I'm using Springboot with the io.grpc:grpc-netty-shaded package
What exactly is the difference between these two fields? Thank you
They are the same setting, but in different implementations. The name of the feature in HTTP/2 is "MAX_CONCURRENT_STREAMS". gRPC defaults to no limit, but it is common in HTTP/2 to limit it to 100. maxConcurrentCallsPerConnection()
in grpc-java is the API to configure MAX_CONCURRENT_STREAMS; it's name is different so you don't have to know calls use HTTP/2 streams and to make clear it is per-connection. gRPC C Core just called the setting the same as in HTTP/2: MAX_CONCURRENT_STREAMS.