莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          Xmemcached實現權重memcached節(jié)點(更新)

          Posted on 2009-06-14 15:25 dennis 閱讀(2032) 評論(0)  編輯  收藏 所屬分類: java
              在JavaMemCached這個memacched客戶端,如果你有多個memcachd節(jié)點,你可以設置memcached server的權重,權重高的節(jié)點在存儲、獲取等操作就相應占的比重比較大。恰巧我最近也在實現一個類似這樣流控的東西,因此在xmemcached實現了此feature。這個功能暫定在1.2.0的時候發(fā)布,但是現在已經可以從svn獲取,只是你需要自己build。

              使用方法,與通常調用的唯一區(qū)別就是在創(chuàng)建MemcachedClient的時候,

          MemcachedClientBuilder builder = new XMemcachedClientBuilder (AddrUtil.getAddresses("localhost:12000 localhost:12001"),new int[]{1,3});
          MemcachedClient memcachedClient = builder.build();


               XMemcachedClientBuilder新增一個重載構造函數,除了傳入地址列表之外,還可以傳入一個權重數組表示列表中的memcached節(jié)點權重,權重數組與地址列表一一對應。這里將localhost:12001的權重設為3,而localhost:12000的權重設置為1。 如果沒有提供權重值,默認都是為1。這個feature已經進行了測試,在隨機化測試下完全符合比例要求。這一feature對于是使用標準哈希,還是一致性哈希都有效。

              實現原理是添加weight次相同的session存儲在session查找集合里,但是注意這里仍然是只有一個連接的,只是在集合里存儲了這個連接的多份引用,那么在查找session的過程中,找到權重大(引用多)的連接的幾率相應就比較大。



          主站蜘蛛池模板: 伊吾县| 庐江县| 淮南市| 平利县| 广德县| 乃东县| 金昌市| 临沭县| 连州市| 襄城县| 永靖县| 霍山县| 罗定市| 大名县| 鲁山县| 平原县| 汕尾市| 华蓥市| 井研县| 金阳县| 馆陶县| 昌平区| 文安县| 霍城县| 肥西县| 龙胜| 嘉义县| 思南县| 珠海市| 五大连池市| 贵溪市| 基隆市| 永德县| 怀远县| 塔城市| 启东市| 平塘县| 延庆县| 象山县| 仙桃市| 阿勒泰市|