Hello,
I intend to use grpc between two fixed endpoints (client and server) where
the client receives multiple requests (the client serves as a proxy) which
in turn sends a grpc request to the server. I wanted to know of the
following would be considered good practice:
a) For every request that comes in at the client, do the following in the
http handler:
a) conn := grpc.Dial(...) // establish a grpc connection
b) client := NewClient(conn) // instantiate a new client
c) client.Something(..) // invoke the grpc method on the
client
i.e Establish a new connection and client in handling every request
b) Establish a single grpc connection between client and server at init()
time and then inside the handler, instantiate a new client and invoke the
grpc method
a) client := NewClient(conn) // instantiate a new client
b) client.Something(..) // invoke the grpc method on the
client
c) Establish a connection and instantiate a client at init() and then in
every handler, just invoke the grpc method.
a) client.Something(..)
The emphasis here is on performance as I expect the the client to process a
large volume of requests coming in. I do know that grpc underneath creates
streams but at the end of the day a single
logical grpc connection runs on a single TCP connection (multiplexing the
streams) on it and having just one connection for all clients might not cut
it. Thoughts and ideas appreciated !
Thanks,
Nakul
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.