Thanks Carl, appreciate your detailed response, helps clear my confusions.

Regarding Load balancer, yes, you are right, i was talking about server 
side LB like a LinkerD or Ngnix.

Actually this is my setup 




On Saturday, December 1, 2018 at 12:40:41 AM UTC+5:30, Carl Mastrangelo 
wrote:
>
> gRPC uses a "channel" rather than a "connection" as the surface level 
> API.   A channel is a managed set of connections to your server(s).  The 
> number of connections could drop down to 0 if they are idle, or be as large 
> as every server returned by your DNS entries.   gRPC has two pluggable 
> components called a "name resolver" and a "load balancer" which both run 
> inside of your client.   The name resolver (typically DNS), converts the 
> "target" string you connect to, and turns it into a set of addresses.  The 
> load balancer is notified of the addresses, and decides which ones to 
> create connections to, and which ones received your RPCs.   By default, we 
> use a "pick first" load balancer which only makes one connection.
>
> If the connection between a client and a particular server breaks, the 
> connection is removed from the set, and if another connection is available, 
> gRPC will fire RPCs on the healthy one.  If not, gRPC will attempt to 
> establish a new connection, up until the point that your RPC is not 
> canceled or the deadline has exceeded.
>
> The word load balancer is overloaded here, because client side load 
> balancing is different than server side.   I think you are talking about 
> server side.   You will need to modify your client side load balancer to 
> "round robin", which will establish connections to every backend server you 
> have.   When servers terminate, or are added to the pool of backends, it's 
> up to the client side load balancer / name resolver to notice these 
> differences and adjust the connections.  gRPC does this by default (via the 
> connections actually breaking), but it's faster if your name resolver 
> (again, typically DNS) notices the server set has changed. 
>
> On Friday, November 30, 2018 at 7:20:27 AM UTC-8, fairly accurate wrote:
>>
>>
>> Hello All,
>>   I'm a newbie grpc user. Actually, i'm using a product that is built 
>> over grpc.
>> I have read stuff about grpc, pardon my ignorance, some basic questions 
>> on grpc connections.
>>
>> 1. I understand it is 1 connection per client server pair. Does this mean 
>> a connection is established between client and server, and stays alive 
>> until one of them ceases to exist ?
>> Also, if the connection drops, a new connection is initiated ?
>>
>> 2. I have a load balancer placed between the client and server. The LB 
>> has 2 servers. In this case is 1 connection to each server or just one to 
>> LB and the load is balanced between the tow servers or 2 connections ?
>>
>> Appreciate your response.
>>
>> AK
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/241984eb-b0f3-4b6f-9401-43c2e9550a71%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to