ETCD Client Load Balancer

SMF supports the ETCD client, version 3.4.21, which implements the clientv3-grpc1.14 library. This library is backward compatible.

The clientv3-grpc1.14 library has the following key points:

  • Simplify the balancer failover logic instead of maintaining a list of unhealthy endpoints.

  • Create multiple subconnections, which implies one subconnection per endpoint, when multiple endpoints are available. For example, in a five-node cluster, clientv3-grpc1.14 balancer requires five TCP connections.

  • Provide more flexible load balancer with a better failover performance by preserving the pool of TCP connections.

  • Extend the default round robin balancing policy to support other types of balancers, such as power of two and pick leader.

  • Use the gRPC resolver group and implement balancer picker policy to delegate complex balancing work to upstream gRPC.

  • Implement retry in the gRPC interceptor chain that handles gRPC internal errors automatically and enables advanced retry policies, such as backoff.