Responses inline On Wednesday, November 28, 2018 at 2:23:13 PM UTC-8, eleano...@gmail.com wrote: > > Here is the test case: > > I have implemented my custom NameResolver, and using RoundRobinLoadBalancer > in managedChannelBuilder. > > 1. initially has 4 instances running (serverA, serverB, serverC, serverD) > > 2. then kill 2 instances (serverC, serverD), then serverA and serverB > continues serving the request >
Do you mean gracefully shutdown, or just pull the plug? gRPC has no way of knowing the latter case, which means you need to turn on keep-alives in the channel. > > 3. then create 2 more instances (serverE, serverF), only serverA and > serverB continues serving the request, since the NameResolver::refresh is > only triggered due to connection failures or GOAWAY signal. > Name resolvers are meant to be push based. It is expected that some other service will notify your name resolver when new servers enter the pool. DNS is pull based, so we implemented as a timer based refresh, but it isn't desirable. If in your custom resolver you pull, then you'll have to use a timer like DNS does. > > 4. then kill serverA and serverB, there is 30 minutes blank window, that > gRPC seems not doing anything, then after 30 minutes NameResolver::refresh > is triggered and the messages are served by serverE and serverF. (seems no > messaging loss). > > Can someone please suggest why there is a 30 minutes blank window, and is > there anyway we can configure it to be shorter? > > Thanks a lot! > -- 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 grpc-io+unsubscr...@googlegroups.com. To post to this group, send email to grpc-io@googlegroups.com. 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/ce805b16-2629-4331-96f2-97150ac50a66%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.