閱讀403 返回首頁    go 阿裏雲 go 技術社區[雲棲]


id生成器算法設計

    原理說明
        1.每個數據庫存儲初始值
        2.業務獲取值後修改數據庫的初始值   現初始值=源初始值+數據庫個數*步長  【原子操作】  
        3.業務拿到初始值後,獲取的數據集合是   開始值  ~   開始值+步長
    //設置步長
    int bc=4;
    Map<String,Integer> map=new HashMap<String, Integer>();
    //設置初始值,各初始值間隔bc
    map.put("db1", 0);
    map.put("db2", 4);
    map.put("db3", 8);
    for(int i=0;i<3;i++){
        for(Iterator<String> iterator= map.keySet().iterator();iterator.hasNext();){
            StringBuffer sb=new StringBuffer();
            String key=iterator.next();
            sb.append("[").append(key).append("]");
            for(int k=map.get(key),is=map.get(key)+bc;k<is;k++){
                sb.append(k+",");
            }
            //修改下次的初始值
            int ns=map.get(key)+map.size()*bc;
            map.put(key, ns);
            System.out.println(sb.toString());
            sb.reverse();
        }
    }

最後更新:2017-05-24 11:01:25

  上一篇:go  《TensorFlow技術解析與實戰》——第1章 人工智能概述 1.8小結
  下一篇:go  阿裏下一代數據庫技術:把數據庫裝入容器不再是神話