负载均衡

引入依赖

  1. go get github.com/polarismesh/grpc-go-polaris@latest

初始化 polaris.yaml

你需要在项目的根路径下创建一个 polaris.yaml 文件用于初始化 polaris-go SDK。polaris.yaml配置详细

设置默认负载均衡策略

修改 polaris.yaml 文件

  1. #描述:主调端配置
  2. consumer:
  3. ...
  4. #描述:负载均衡相关配置
  5. loadbalancer:
  6. #描述:负载均衡类型
  7. #范围:已注册的负载均衡插件名
  8. #默认值:权重随机负载均衡
  9. #支持参数:ringHash(一致性hash环)/maglev(maglev算法一致性hash)/hash(普通一致性hash)
  10. type: weightedRandom
  11. plugin:
  12. #描述:虚拟节点的数量
  13. #类型:int
  14. #默认值:500
  15. #ringHash:
  16. # vnodeCount: 500
  17. #maglev:
  18. # # 初始化表向量区间
  19. # tableSize: 65537

设置请求级别负载均衡策略

  1. ctx := metadata.NewIncomingContext(context.Background(), metadata.MD{})
  2. // 请求时设置本次请求的负载均衡算法
  3. ctx = polaris.RequestScopeLbPolicy(ctx, api.LBPolicyRingHash)
  4. ctx = polaris.RequestScopeLbHashKey(ctx, r.Header.Get("uid"))
  5. resp, err := echoClient.Echo(ctx, &pb.EchoRequest{Value: value})