golang如何实现负载均衡

 时间:2024-10-14 11:11:51

1、conn巳呀屋饔, err := grpc.Dial("",grpc.WithInsecure(),// 负载均衡,使用 consul 作服务发现grpc.WithBalan艘早祓胂cer(grpc.RoundRobin(grpclb.NewConsulResolver("127.0.0.1:8500", "grpc.health.v1.add",))),)

golang如何实现负载均衡
golang如何实现负载均衡

2、创建连接的时候可以使用 WithBalancer 选项来指定负载均衡策略,这里使用 RoundRobin 算法,其实就是轮询策略

golang如何实现负载均衡

3、有了负载均衡策略,还需要一个地址解析和更新策略,可以捂执涡扔使用 DNS 服务来实现,但如果我们使用 consul 来做服务的注册和发现,可以通过实现 ‘naming.Resolver' 和 催嗟祢汊‘naming.Watcher' 接口来支持

golang如何实现负载均衡

4、一个缓存服务器宕机了,这样所有映射到这台服务器的对象都会失效,我们需要把属于该服务器中的缓存移除,这时候缓存服务器是 N-1 台,映射公式变成了 hash(object)%(N-1)

golang如何实现负载均衡

5、由于QPS升高,我们需要添加多一台服务器,这时候服务器是 N+1 台,映射公式变成了 hash(object)%(N+1) 。

golang如何实现负载均衡

6、简单地说,一致性哈希将整个哈希值空间组织成一个虚拟的圆环,如假设某空间哈希函数H的值空间是0-2^32-1

golang如何实现负载均衡
golang如何实现负载均衡
  • 乳房有硬块疼怎么办
  • 购安置房怎样规避风险?
  • 岫岩旅游攻略
  • 职工发生工伤事故后,工伤认定手续怎么办理
  • lego乐高系列玩具购物攻略
  • 热门搜索
    爱劳动手抄报 关于诗的手抄报 爱护环境手抄报 争做美德少年手抄报 低碳生活我先行手抄报 英语手抄报设计图 一年级手抄报大全 迎中秋庆国庆手抄报 英语手抄报资料 英语手抄报版面设计