Documentation ¶
Overview ¶
Package snowflake provides a very simple Twitter snowflake generator.
init初始化:
通过环境变量SNOWFLAKE_NODE_LIST和HOST_IP来确定节点ID.对于单机部署Node=1. 分布式部署时,节点通过主机IP匹配SNOWFLAKE_NODE_LIST中的索引位置(index起始为1),确定节点ID.如果未能匹配,则同单机部署ID=1.
同时支持使用配置文件初始化:
nodeBits: 节点位数,默认3,最多支持2^3 8个节点 stepBits: 序列号位数,默认8, 一毫秒内最多生成2^8 256个ID nodeID: 节点ID,默认1
在使用默认值情况下,最多部署 8 台机器,每毫秒产生 8X 256 = 2048 个 ID 在一般的系统中已足够使用. 通过环境变量`SNOWFLAKE_DEFAULT`= true (1,t,T等) 来使用标准算法,
K8S环境注意事项: 由于每个容器是独立的程序,因此Deployment 开启多实例时,不同的POD可能部署至同一台服务器时,会出现相同的节点ID,导致ID重复.尽量使用亲合性配置防止此情况. 针对不同的业务,一般操作的数据表也不同,ID 重复是可容忍的. 当机器增加时,只做增量配置变更,原运行的实例不需要重启.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetDefaultNode ¶
func SetDefaultNode(cnf *conf.Configuration) (err error)
func SetDefaultNodeFromEnv ¶
func SetDefaultNodeFromEnv() (err error)
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.