莊周夢蝶

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

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

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

              使用方法,與通常調用的唯一區別就是在創建MemcachedClient的時候,

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


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

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



          主站蜘蛛池模板: 嵊州市| 襄城县| 泽州县| 顺昌县| 谷城县| 交口县| 舞钢市| 论坛| 准格尔旗| 错那县| 汶上县| 交口县| 丹阳市| 陆川县| 汾阳市| 伽师县| 岢岚县| 德钦县| 镇坪县| 赤水市| 益阳市| 海林市| 扎囊县| 公安县| 兴和县| 蒙自县| 沭阳县| 宜川县| 辽宁省| 德钦县| 南开区| 吉水县| 同仁县| 五台县| 广宁县| 清水县| 尉犁县| 青海省| 深水埗区| 泽州县| 杭锦旗|