rr 算法

type roundRobin struct {
    s sd.Endpointer
    c uint64
}
//client  原子+  then  取模
func (rr *roundRobin) Endpoint() (endpoint.Endpoint, error) {
    endpoints, err := rr.s.Endpoints()
    if err != nil {
        return nil, err
    }
    if len(endpoints) <= 0 {
        return nil, ErrNoEndpoints
    }
    old := atomic.AddUint64(&rr.c, 1) - 1
    idx := old % uint64(len(endpoints))
    return endpoints[idx], nil
}


todo wrr

您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站大部分内容收集于互联网,如果有侵权内容、不妥之处,请联系删除。敬请谅解!

添加新评论

  关于博主【WANG-FEiHU】

Duplicate
-----------Complicate
--------------------------Appreciate
-----------------------------------------Fate

闻先后,术专攻
三人有师
习得文武艺,货与帝王家
人性不曾变,资本永无眠

-----------花有重开日,人无再少年-----------

  分类目录

  monitor(TD)

只有脚踏实地的人,才能够说:路,就在我的脚下。

无论你选择做什么,追求完美的程度决定你成就的高度。

这个世界最脆弱的是生命,身体健康,很重要。

技术就是一层窗户纸,捅破它吧。

上帝说:你要什么便取什么,但是要付出相当的代价。

现在站在什么地方不重要,重要的是你往什么方向移动。