Skip to content

GRPCLB should enable client-side health-checking in fallback mode #5607

Open
@zhangkun83

Description

@zhangkun83

When working normally, the remote balancer health-checks backends and only send healthy backends to the client, thus no need for client-side health-checking. In fallback mode, client-side health-checking is needed.

@ejona86 @markdroth @menghanl and I had a discussion today. The simplest solution for Java is to wrap GrpclbLoadBalancer with the health-checking LoadBalancer, thus it always enable client-side health-checking (if service config enables it). It's considered acceptable both normal mode and fallback mode have it enabled indiscriminately.

However, GRPCLB with pick_first child policy won't work well with health-checking. Health-checking returning unhealthy would fail RPCs, but the pick_first policy will not try the next backend, because InternalSubchannel still considers the connection READY. Fortunately, our only user of GRPCLB w/ pick_first won't turn on health-checking.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions