集群环境下uuid的生成

集群环境下uuid的生成

package com.example.demo;

import lombok.extern.slf4j.Slf4j;
import java.io.UnsupportedEncodingException;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger;

@Slf4j
public class UUIDUtil {

    /* 获取配置:当前实例名 */
    private static final String INSTANCE_NAME = System.getProperty("instance.name");

    private static final AtomicInteger COUNT = new AtomicInteger(0);

    /**
     * 声明private构造方法
     */
    private UUIDUtil() {
    }

    /**
     * 生成集群环境下uuid
     *
     * @return
     */
    public static String generateConcurrentUUID() {
        if (null == INSTANCE_NAME) {
            return "The instance.name JVM option is null";
        }
        String result = null;
        StringBuilder builder = new StringBuilder();
        builder.append(INSTANCE_NAME);
        builder.append(System.currentTimeMillis());
        builder.append(COUNT.incrementAndGet());
        result = builder.toString();
        System.out.println(result);
        try {
            result = UUID.nameUUIDFromBytes(result.getBytes("UTF-8")).toString().replace("-", "");
        } catch (Exception e) {
            log.error("uuid generate exception", e);
        }
        return result;
    }

    public static void main(String[] args){
        System.out.println(generateConcurrentUUID());
    }
}

 

posted @ 2019-07-11 14:40  逐日也桂圆  阅读(761)  评论(0编辑  收藏  举报