在互联网的业务系统中,涉及到各种各样的ID,订单id,支付id,退款id,下面我一一来列举一下,不一定全部适合,这些解决方案仅供你参考,或许对你有用。
方案:
1.UUID
算法的核心思想是结合机器的网卡、当地时间、一个随记数来生成UUID。
优点:本地生成,生成简单,性能好,没有高可用风险
缺点:长度过长,存储冗余,且无序不可读,查询效率低
2.UUID的变种
1)为了解决UUID不可读,可以使用UUID的变种,示例代码:
1import java.util.UUID;
2
3public class T {
4 public static String getOrderIdByUUId() {
5 int machineId = 1;//最大支持1-9个集群机器部署
6 int hashCodeV = UUID.randomUUID().toString().hashCode();
7 if(hashCodeV
8 hashCodeV = - hashCodeV;
9 }
10 // 0 代表前面补充0
11 // 4 代表长度为4
12 // d 代表参数为正数型
13 return machineId + String.f