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
上一篇:
《TensorFlow技术解析与实战》——第1章 人工智能概述 1.8小结
下一篇:
阿里下一代数据库技术:把数据库装入容器不再是神话
Spark SQL Columnar模块源码分析
庞果网之高斯公式
广东云栖大会 | 政务云上“国家级”加密保护,游戏业内普惠的安全防御
ASP.NET Core的配置(3): 将配置绑定为对象[上篇]
Predicate和Consumer接口– Java 8中java.util.function包下的接口
如何在 Ubuntu 16.10 的 Unity 8 上运行老式 Xorg 程序
多核时代:并行程序设计探讨(4)——Windows和Linux对决(进程间通信)
使用CopyTable同步HBase数据
引用传实参
2017云栖大会·杭州峰会:《云数据·大计算:海量日志数据分析与应用》之《数据分析展现:可视化报表及嵌入应用》篇