Something I've wondered for awhile: why would I want to design with gRPC rather than well-defined HTTP/JSON endpoints? Is it just a perf thing?
gRPC: Internet-scale RPC framework is now 1.0
51–60 of 111 posts
Re: gRPC: Internet-scale RPC framework is now 1.0
#52Earlier quoted context omitted.
We're using grpc-java in production for some of our based backend system, slowly replacing our old netty/jackson based system using JSON over HTTP/1.1. The performance is good, and it's nice to have proto files with messages and services, which acts both as documentation and a way to generate client and server code. Protobuf is much faster, produces less garbage and is easier to work with than JSON/jackson. The gener…
> This turned out to be caused by HTTP/2.0 which only allows 1 billion streams over a single connection. Hilarious. People called this issue out as an obvious flaw when HTTP/2.0 was first proposed, got ignored, and here the issue is. For those unfamiliar: HTTP/2.0 uses an unsigned 31-bit integer to identity individual streams over a connection. Server-initiated streams must use even identifiers. Client-initiated stre…
Re: gRPC: Internet-scale RPC framework is now 1.0
#53Earlier quoted context omitted.
We're using grpc-java in production for some of our based backend system, slowly replacing our old netty/jackson based system using JSON over HTTP/1.1. The performance is good, and it's nice to have proto files with messages and services, which acts both as documentation and a way to generate client and server code. Protobuf is much faster, produces less garbage and is easier to work with than JSON/jackson. The gener…
> This turned out to be caused by HTTP/2.0 which only allows 1 billion streams over a single connection. Hilarious. People called this issue out as an obvious flaw when HTTP/2.0 was first proposed, got ignored, and here the issue is. For those unfamiliar: HTTP/2.0 uses an unsigned 31-bit integer to identity individual streams over a connection. Server-initiated streams must use even identifiers. Client-initiated stre…
Re: gRPC: Internet-scale RPC framework is now 1.0
#54Earlier quoted context omitted.
> This turned out to be caused by HTTP/2.0 which only allows 1 billion streams over a single connection. Hilarious. People called this issue out as an obvious flaw when HTTP/2.0 was first proposed, got ignored, and here the issue is. For those unfamiliar: HTTP/2.0 uses an unsigned 31-bit integer to identity individual streams over a connection. Server-initiated streams must use even identifiers. Client-initiated stre…
It was not ignored, it was very much made on purpose because of a certain popular programming language not having unsigned 32 bit variables...
Re: gRPC: Internet-scale RPC framework is now 1.0
#55Re: gRPC: Internet-scale RPC framework is now 1.0
#56Something I've wondered for awhile: why would I want to design with gRPC rather than well-defined HTTP/JSON endpoints? Is it just a perf thing?
We have had to force keep alive and even forcefully turn it off in some cases :(.
Re: gRPC: Internet-scale RPC framework is now 1.0
#57Earlier quoted context omitted.
It was not ignored, it was very much made on purpose because of a certain popular programming language not having unsigned 32 bit variables...
Well, that's half of the downside presented, the other half is that it's split be server/client connections. I assume this was done because it simplifies the tracking of the next stream identifier, because you can just keep a counter and increment, rather than a table of used streams to check a new random identifier against?
Re: gRPC: Internet-scale RPC framework is now 1.0
#58Earlier quoted context omitted.
> This turned out to be caused by HTTP/2.0 which only allows 1 billion streams over a single connection. Hilarious. People called this issue out as an obvious flaw when HTTP/2.0 was first proposed, got ignored, and here the issue is. For those unfamiliar: HTTP/2.0 uses an unsigned 31-bit integer to identity individual streams over a connection. Server-initiated streams must use even identifiers. Client-initiated stre…
It was not ignored, it was very much made on purpose because of a certain popular programming language not having unsigned 32 bit variables...
So, if we ever close a connection from having reached a billion streams we are in a very very good position.
Re: gRPC: Internet-scale RPC framework is now 1.0
#59Re: gRPC: Internet-scale RPC framework is now 1.0
#60Anyone here who tried out gRPC or is using it in production, and can share some experiences?
Every RPC system needs this, or you end up with hacks like HTTP long polling.
My least favourite feature is that it is tied to HTTP2. I'm not sure what you're supposed to do if you are running on a microcontroller.