config

package
v0.0.0-...-968fa83 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2024 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckConfig

func CheckConfig(ctx context.Context, conf *RainDropConfig) error

Types

type RainDropConfig

type RainDropConfig struct {

	// IdMode Id生成模式, Snowflake:雪花算法;NumberSection:号段模式,目前仅支持Snowflake
	IdMode string `json:"idMode"`

	// DbConfig 数据库配置
	DbConfig RainDropDbConfig `json:"dbConfig"`

	// Logger 日志
	Logger logger.ILogger `json:"logger"`

	// ServicePort 服务端口
	ServicePort int `json:"servicePort"`

	// TimeUnit 时间戳单位, 1:毫秒(可能会有闰秒问题);2:秒,默认;3:分钟;4:小时,间隔过大不建议选择;5:天,间隔过大不建议选择;
	TimeUnit consts.TimeUnit `json:"timeUnit"`

	// StartTimeStamp 起始时间,时间戳从该时间开始计时
	StartTimeStamp time.Time `json:"startTimeStamp"`

	// TimeStampLength 时间戳位数
	/*
	  - timeUnit 为 1 时,取值范围 41-50 位,值越大每毫秒支持生成的 id 数就越少;
	    - 41: 约 69.7 年,默认;
	    - 42:约 139.4 年;
	    - 43:约 278.9 年;
	    - 44:约 557.8 年;
	    - 45:约 1115.6 年;
	    - 46:约 2231.3 年;
	    - 47:约 4462.7 年;
	    - 48:约 8925.5 年;
	    - 49:约 17851 年;
	    - 50:约 35702 年;
	  - timeUnit 为 2 时,取值范围 31-40 位,值越大每毫秒支持生成的 id 数就越少;
	    - 31:约 68 年;
	    - 32:约 136.1 年;
	    - 33:约 272.3 年,默认;
	    - 34:约 544.7 年;
	    - 35:约 1089.5 年;
	    - 36:约 2179 年;
	    - 37:约 4358.1 年;
	    - 38:约 8716.3 年;
	    - 39:约 17432.6 年;
	    - 40:约 34865.2 年;
	  - timeUnit 为 3 时,取值范围 25-34 位,值越大每毫秒支持生成的 id 数就越少;
	    - 25:约 63.8 年;
	    - 26:约 127.6 年;
	    - 27:约 255.3 年,默认;
	    - 28:约 510.7 年;
	    - 29:约 1021.4 年;
	    - 30:约 2042.8 年;
	    - 31:约 4085.7 年;
	    - 32:约 8171.5 年;
	    - 33:约 16343.1 年;
	    - 34:约 32686.2 年;
	  - timeUnit 为 4 时,取值范围 19-28 位,值越大每毫秒支持生成的 id 数就越少;
	    - 19:约 59.8 年;
	    - 20:约 119.7 年;
	    - 21:约 239.4 年,默认;
	    - 22:约 478.8 年;
	    - 23:约 957.6 年;
	    - 24:约 1915.2 年;
	    - 25:约 3830.4 年;
	    - 26:约 7660.8 年;
	    - 27:约 15321.6 年;
	    - 28:约 30643.3 年;
	  - timeUnit 为 5 时,取值范围 15-24 位,值越大每毫秒支持生成的 id 数就越少;
	    - 15:约 89.7 年;
	    - 16:约 179.5 年;
	    - 17:约 359 年,默认;
	    - 18:约 718.2 年;
	    - 19:约 1436.4 年;
	    - 20:约 2872.8 年;
	    - 21:约 5745.6 年;
	    - 22:约 11491.2 年;
	    - 23:约 22982.4 年;
	    - 24:约 45964.9 年;
	*/
	TimeStampLength int `json:"timeStampLength"`

	// PriorityEqualCodeWorkId 优先相同code的workerId(毫秒,秒单位场景下生效),默认:false。code格式为:{内网ip}:{ServicePort}#{Mac地址}
	PriorityEqualCodeWorkId bool `json:"priorityEqualCodeWorkId"`

	// WorkIdLength 工作节点 id 长度,取值范围 4 - 10 位.
	/*
	  - 4:支持 15 个工作节点,默认,取值范围:1-15;
	  - 5:支持 31 个工作节点,取值范围:1-31;
	  - 6:支持 63 个工作节点,取值范围:1-63;
	  - 7:支持 127 个工作节点,取值范围:1-127;
	  - 8:支持 255 个工作节点,取值范围:1-255;
	  - 9:支持 511 个工作节点,取值范围:1-511;
	  - 10:支持 1023 个工作节点,1-1023;
	*/
	WorkIdLength int `json:"workIdLength"`

	// ServiceMinWorkId 服务的最小工作节点 id,默认 1,需在 workIdLength 的定义范围内,最大值最小值用于不同数据中心的隔离。
	ServiceMinWorkId int64 `json:"serviceMinWorkId"`

	// ServiceMaxWorkId 服务的最大工作节点 id,默认 workIdLength 的最大值,需在 workIdLength 的定义范围内。
	ServiceMaxWorkId int64 `json:"serviceMaxWorkId"`

	// TimeBackBitValue 时间回拨位初始值,支持 `0` 或 `1`,默认: `0`;
	TimeBackBitValue int `json:"timeBackBitValue"`

	// EndBitsLength 可选预留位长度,支持`0`-`5`, 如果不需要可以设置为 `0`, 建议设置为 `1`
	EndBitsLength int `json:"endBitsLength"`

	// EndBitsValue 可选预留位的值,默认: `0`
	EndBitsValue int `json:"endBitValue"`
}

type RainDropDbConfig

type RainDropDbConfig struct {
	// DbType 数据库类型,mysql、postgresql
	DbType string `json:"dbType"`

	// postgres://username:password@localhost:5432/database_name
	// 数据库连接,{user}:{password}@({host}:{port})/{dbName}?charset=utf8mb4&parseTime=True&loc={Asia%2FShanghai}
	DbUrl string `json:"dbUrl"`

	// 数据库表名,默认为 soc_raindrop_worker
	TableName string `json:"tableName"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL