负载均衡
引入依赖
go get github.com/polarismesh/grpc-go-polaris@latest
初始化 polaris.yaml
你需要在项目的根路径下创建一个 polaris.yaml 文件用于初始化 polaris-go SDK。polaris.yaml配置详细
设置默认负载均衡策略
修改 polaris.yaml 文件
#描述:主调端配置
consumer:
...
#描述:负载均衡相关配置
loadbalancer:
#描述:负载均衡类型
#范围:已注册的负载均衡插件名
#默认值:权重随机负载均衡
#支持参数:ringHash(一致性hash环)/maglev(maglev算法一致性hash)/hash(普通一致性hash)
type: weightedRandom
plugin:
#描述:虚拟节点的数量
#类型:int
#默认值:500
#ringHash:
# vnodeCount: 500
#maglev:
# # 初始化表向量区间
# tableSize: 65537
设置请求级别负载均衡策略
ctx := metadata.NewIncomingContext(context.Background(), metadata.MD{})
// 请求时设置本次请求的负载均衡算法
ctx = polaris.RequestScopeLbPolicy(ctx, api.LBPolicyRingHash)
ctx = polaris.RequestScopeLbHashKey(ctx, r.Header.Get("uid"))
resp, err := echoClient.Echo(ctx, &pb.EchoRequest{Value: value})