id生成器算法设计

    xiaoxiao2023-12-14  148

    原理说明 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(); } }
    最新回复(0)