亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Golang > 正文

golang grpc 負載均衡的方法

2020-04-01 18:56:18
字體:
來源:轉載
供稿:網友

微服務架構里面,每個服務都會有很多節點,如果流量分配不均勻,會造成資源的浪費,甚至將一些機器壓垮,這個時候就需要負載均衡,最簡單的一種策略就是輪詢,順序依次選擇不同的節點訪問。

grpc 在客戶端提供了負載均衡的實現,并提供了服務地址解析和更新的接口(默認提供了 DNS 域名解析的支持),方便不同服務的集成

使用示例

conn, err := grpc.Dial(  "",  grpc.WithInsecure(),  // 負載均衡,使用 consul 作服務發現  grpc.WithBalancer(grpc.RoundRobin(grpclb.NewConsulResolver(    "127.0.0.1:8500", "grpc.health.v1.add",  ))),)

創建連接的時候可以使用 WithBalancer 選項來指定負載均衡策略,這里使用 RoundRobin 算法,其實就是輪詢策略

與 consul 的集成

有了負載均衡策略,還需要一個地址解析和更新策略,可以使用 DNS 服務來實現,但如果我們使用 consul 來做服務的注冊和發現,可以通過實現 ‘naming.Resolver' 和 ‘naming.Watcher' 接口來支持

  • naming.Resolver: 實現地址解析
  • naming.Watcher: 實現節點的變更,添加或者刪除
func NewConsulResolver(address string, service string) naming.Resolver {  return &consulResolver{    address: address,    service: service,  }}type consulResolver struct {  address string  service string}func (r *consulResolver) Resolve(target string) (naming.Watcher, error) {  config := api.DefaultConfig()  config.Address = r.address  client, err := api.NewClient(config)  if err != nil {    return nil, err  }  return &consulWatcher{    client: client,    service: r.service,    addrs:  map[string]struct{}{},  }, nil}type consulWatcher struct {  client  *api.Client  service  string  addrs   map[string]struct{}  lastIndex uint64}func (w *consulWatcher) Next() ([]*naming.Update, error) {  for {    services, metainfo, err := w.client.Health().Service(w.service, "", true, &api.QueryOptions{      WaitIndex: w.lastIndex, // 同步點,這個調用將一直阻塞,直到有新的更新    })    if err != nil {      logrus.Warn("error retrieving instances from Consul: %v", err)    }    w.lastIndex = metainfo.LastIndex    addrs := map[string]struct{}{}    for _, service := range services {      addrs[net.JoinHostPort(service.Service.Address, strconv.Itoa(service.Service.Port))] = struct{}{}    }    var updates []*naming.Update    for addr := range w.addrs {      if _, ok := addrs[addr]; !ok {        updates = append(updates, &naming.Update{Op: naming.Delete, Addr: addr})      }    }    for addr := range addrs {      if _, ok := w.addrs[addr]; !ok {        updates = append(updates, &naming.Update{Op: naming.Add, Addr: addr})      }    }    if len(updates) != 0 {      w.addrs = addrs      return updates, nil    }  }}func (w *consulWatcher) Close() {  // nothing to do}

參考鏈接

gRPC Name Resolution: https://github.com/grpc/grpc/blob/master/doc/naming.md

Load Balancing in gRPC: https://github.com/grpc/grpc/blob/master/doc/load-balancing.md

dns_resolver: https://github.com/grpc/grpc-go/blob/30fb59a4304034ce78ff68e21bd25776b1d79488/naming/dns_resolver.go

代碼地址: https://github.com/hatlonely/hellogolang/blob/master/sample/addservice/cmd/client/main.go

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久av| 日韩国产一区三区| 日韩亚洲欧美中文在线| 日韩精品日韩在线观看| 6080yy精品一区二区三区| 精品久久久久久久久国产字幕| 亚洲女人被黑人巨大进入| 亚洲国产精品久久久久秋霞不卡| 成人免费网站在线观看| 欧美亚洲成人精品| 色伦专区97中文字幕| xxav国产精品美女主播| 亚洲激情视频在线| 亚洲一级免费视频| 岛国精品视频在线播放| 98精品国产自产在线观看| 国产精品夜色7777狼人| 成人国产在线激情| 久久视频免费观看| 欧美激情在线一区| 久久久精品久久久久| 亚洲free性xxxx护士白浆| 精品国产一区久久久| 一区二区三区 在线观看视| 96精品视频在线| 久久69精品久久久久久久电影好| 久久精品国产一区| 久久99青青精品免费观看| 久久久国产视频| 亚洲国产精品字幕| 国产一区二区香蕉| 18性欧美xxxⅹ性满足| 国产精品都在这里| 欧美国产日韩精品| 亚洲精品一区二区在线| 国产午夜精品久久久| 欧美激情图片区| 欧美视频裸体精品| 欧洲成人午夜免费大片| 国产精品美女视频网站| 亚洲a区在线视频| 国产网站欧美日韩免费精品在线观看| 久久久久久亚洲精品不卡| 国产丝袜精品第一页| 欧美丰满少妇xxxxx做受| 操人视频在线观看欧美| 日韩免费观看在线观看| 欧美激情精品久久久| 欧美成人午夜激情视频| 成人黄色免费在线观看| 日韩精品有码在线观看| 91地址最新发布| 久久国产精品久久久久| 黄色一区二区在线| 欧美日韩视频免费播放| 在线视频欧美性高潮| 色先锋久久影院av| 97超碰蝌蚪网人人做人人爽| 成人国产亚洲精品a区天堂华泰| 在线日韩第一页| 九九热这里只有精品6| 国产亚洲美女精品久久久| 国产美女搞久久| 亚洲女人天堂视频| 日韩在线欧美在线国产在线| 超薄丝袜一区二区| 欧美日韩另类视频| 日韩精品视频观看| 国产精品99久久久久久www| 91国产精品视频在线| 国产精品永久免费| 亚洲成av人片在线观看香蕉| 欧美日韩国产精品| 国产精品h在线观看| 人人做人人澡人人爽欧美| 成人激情免费在线| 国产精品久久久久久久一区探花| 欧美成人剧情片在线观看| 久久成人这里只有精品| 亚洲一区二区在线| 欧美日韩中文字幕| 最近2019年好看中文字幕视频| 韩曰欧美视频免费观看| 久久视频国产精品免费视频在线| 少妇精69xxtheporn| 亚洲激情视频网| 九九热视频这里只有精品| 久久久久久久久久av| 欧美极品在线播放| 丝袜美腿亚洲一区二区| 国产美女精品免费电影| 亚洲成人a级网| 中文字幕亚洲无线码在线一区| 国产精品6699| 久久中文精品视频| 亚洲图片在线综合| 国产日韩欧美中文在线播放| 欧美亚州一区二区三区| 国产日韩在线免费| 国模吧一区二区三区| 国产免费成人av| 中文字幕欧美日韩在线| 久久91亚洲精品中文字幕| 亚洲性xxxx| 欧美理论电影在线观看| 国产精品伦子伦免费视频| 国产精品日韩在线播放| 成人午夜激情网| 欧美肥老太性生活视频| 成人激情视频免费在线| 日韩女在线观看| 欧美成人sm免费视频| 国产91成人在在线播放| 国产成人精品最新| 国产成人精品一区二区| 国产精品99久久久久久白浆小说| 97久久伊人激情网| 色一区av在线| 性色av一区二区三区在线观看| 81精品国产乱码久久久久久| 亚州成人av在线| 色黄久久久久久| 国产免费观看久久黄| 国产亚洲成精品久久| 97视频免费在线观看| 欧美大片网站在线观看| 伊人久久久久久久久久久久久| 日韩成人av一区| 亚洲国产日韩精品在线| 亚洲美女福利视频网站| 成人黄色片在线| 日韩久久免费视频| 91高清在线免费观看| 欧美国产视频日韩| zzjj国产精品一区二区| 亚州成人av在线| 亚洲欧美日韩视频一区| 日韩亚洲成人av在线| 亚洲午夜色婷婷在线| 欧美日韩国产精品一区二区不卡中文| 亚洲视频在线免费看| 亚洲第一福利视频| 亚洲专区中文字幕| 欧美成人精品激情在线观看| 日韩在线观看高清| 亚洲尤物视频网| 亚洲国产一区二区三区在线观看| 91精品久久久久久久久久入口| 日韩美女视频在线观看| 日韩精品极品毛片系列视频| 92看片淫黄大片看国产片| 2019精品视频| 国产视频在线观看一区二区| 欧美日韩黄色大片| 国产欧美一区二区白浆黑人| 亚洲一区二区三区sesese| 亚洲人成电影网站色| 国产精品aaaa| 自拍偷拍亚洲精品| 91中文字幕一区| 国产一区二区三区在线视频| 精品亚洲男同gayvideo网站| 黑人巨大精品欧美一区二区| 91超碰caoporn97人人|