// Package idgen 全局雪花 ID 生成器,主键统一用字符串形式。 package idgen import ( "os" "strconv" "github.com/bwmarrin/snowflake" ) var node *snowflake.Node // Init 初始化雪花节点;nodeID 取 SUNDYNIX_NODE_ID,默认 1。 func Init() error { nodeID := int64(1) if v := os.Getenv("SUNDYNIX_NODE_ID"); v != "" { n, err := strconv.ParseInt(v, 10, 64) if err != nil { return err } nodeID = n } n, err := snowflake.NewNode(nodeID) if err != nil { return err } node = n return nil } // Next 生成一个字符串雪花 ID。 func Next() string { return node.Generate().String() }