trpc.group/trpc-go/trpc-go@v1.0.3/naming/loadbalance/README.zh_CN.md (about) 1 # tRPC-Go 负载均衡 2 3 针对每个请求进行负载均衡,而不是针对每个连接进行负载均衡,负载均衡与服务发现以及客户端完全解耦,负载均衡在内部根据不同的负载均衡策略维护自身的状态。trpc-go 提供轮训、平滑加权轮训等负载均衡算法。 4 5 ## 使用 6 通过 client.WithBalancerName("xxx") 指定使用的负载均衡算法。 7 ```go 8 opts := []client.Option{ 9 client.WithBalancerName("round_robin"), 10 } 11 12 proxy := pb.NewGreeterProxy() 13 req := &pb.HelloRequest{ 14 Msg: "trpc-go-client", 15 } 16 proxy.SayHello(ctx, req, opts...) 17 ``` 18 19 ## 负载均衡接口 20 ```go 21 // LoadBalancer 负载均衡接口,通过 node 数组返回一个 node 22 type LoadBalancer interface { 23 Select(serviceName string, list []*registry.Node, opt ...Option) (node *registry.Node, err error) 24 } 25 ``` 26 自定义实现参考项目内部的实现。 27