configs

package
v0.0.11 Latest Latest
Warning

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

Go to latest
Published: Sep 12, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ServerName              = "server.name"
	ServerHost              = "server.host"
	ServerAddress           = "server.address"
	ServerHTTPSAddress      = "server.httpsAddress"
	ServerHTTPSCertPath     = "server.httpsCertPath"
	ServerHTTPSKeyPath      = "server.httpsKeyPath"
	ServerReadTimeout       = "server.readTimeout"
	ServerWriteTimeout      = "server.writeTimeout"
	ServerIdleTimeout       = "server.idleTimeout"
	ServerMaxHeaderBytes    = "server.maxHeaderBytes"
	ServerKeepAlive         = "server.keepAlive"
	ServerServerAgent       = "server.serverAgent"
	ServerIndexFiles        = "server.indexFiles"
	ServerIndexFolder       = "server.indexFolder"
	ServerServerRoot        = "server.serverRoot"
	ServerSearchPaths       = "server.searchPaths"
	ServerFileServerEnabled = "server.fileServerEnabled"
	ServerPProfEnabled      = "server.pprofEnabled"
	ServerPProfPattern      = "server.pprofPattern"
	ServerStatsVizEnabled   = "server.statsVizEnabled"
	ServerStatsVizPort      = "server.statsVizPort"

	ServerCookieMaxAge = "server.cookie.maxAge"
	ServerCookiePath   = "server.cookie.path"
	ServerCookieDomain = "server.cookie.domain"

	ServerSessionIdName       = "server.session.idName"
	ServerSessionMaxAge       = "server.session.maxAge"
	ServerSessionCookieMaxAge = "server.session.cookieMaxAge"
	ServerSessionCookieOutput = "server.session.cookieOutput"
)

web服务配置

View Source
const (
	TokenKey = "token.key"
	TokenExp = "token.exp"
)

token配置

View Source
const (
	RedisMode               = "redis.mode"
	RedisSentinelMasterName = "redis.sentinelMasterName"
	RedisAddr               = "redis.addr"
	RedisUsername           = "redis.username"
	RedisPassword           = "redis.password"
	RedisDb                 = "redis.db"
	RedisMaxActive          = "redis.maxActive"
	RedisMaxIdle            = "redis.maxIdle"
	RedisIdleTimeout        = "redis.idleTimeout"
	RedisPrefix             = "redis.prefix"

	RedisDataCachePoolSize           = "dataCache.poolSize"
	RedisDataCacheRecordDuration     = "dataCache.recordDuration"
	RedisDataCacheRecordLimit        = "dataCache.recordLimit"
	RedisDataCachePipelineBufferSize = "dataCache.pipelineBufferSize"
)

redis配置

View Source
const (
	DatabaseDriver       = "database.driver"
	DatabaseHost         = "database.host"
	DatabasePort         = "database.port"
	DatabaseUserName     = "database.username"
	DatabasePassword     = "database.password"
	DatabaseDbName       = "database.dbName"
	DatabaseConfig       = "database.config"
	DatabaseMaxIdleConns = "database.maxIdleConns"
	DatabaseMaxOpenConns = "database.maxOpenConns"
	DatabaseShowSQL      = "database.showSql"
)

数据库配置

View Source
const (
	LogLevel            = "log.level"
	LogPattern          = "log.pattern"
	LogOutput           = "log.output"
	LogRotateFile       = "log.rotate.file"
	LogRotateMaxSize    = "log.rotate.maxSize"
	LogRotateMaxBackups = "log.rotate.maxBackups"
	LogRotateMaxAge     = "log.rotate.maxAge"
	LogRotateCompress   = "log.rotate.compress"
)

日志配置

View Source
const (
	QueueInterval    = "queue.interval"
	QueuePrefix      = "queue.prefix"
	QueueListen      = "queue.listen"
	QueueConcurrency = "queue.concurrency"
)

消息队列配置

View Source
const (
	MqttHost         = "mqtt.host"
	MattUsername     = "mqtt.username"
	MqttPassword     = "mqtt.password"
	MqttClientID     = "mqtt.client_id"
	MqttParallel     = "mqtt.parallel"
	MqttSubscribeQos = "mqtt.subscribe_qos"
	MqttPublishQos   = "mqtt.publish_qos"
)

mqtt配置

View Source
const (
	CacheRedisMemoryCacheSize = "redis.memoryCacheSize"
)

缓存配置

Variables

This section is empty.

Functions

func Env

func Env(key string, value ...interface{}) interface{}

func EnvBool

func EnvBool(key string, value ...interface{}) bool

func EnvDuration added in v0.0.7

func EnvDuration(key string, value ...interface{}) time.Duration

func EnvInt

func EnvInt(key string, value ...interface{}) int

func EnvString

func EnvString(key string, value ...interface{}) string

func EnvStringSlice

func EnvStringSlice(key string, value ...interface{}) []string

Types

type CacheConfig

type CacheConfig struct {
	MemoryCacheSize int // 内存缓存大小(字节)
	RedisConfig
}

CacheConfig 结构体用于存储缓存系统的配置

func LoadCacheConfig

func LoadCacheConfig() *CacheConfig

type ConfigEntity

type ConfigEntity struct {
	// contains filtered or unexported fields
}

ConfigEntity 表示需要全局调用的实体对象

func GetInstance

func GetInstance() *ConfigEntity

GetInstance 返回 ConfigDataEntity 的单例实例

func (*ConfigEntity) Get

func (c *ConfigEntity) Get(key string, defaultValue ...interface{}) interface{}

Get 获取interface{}类型配置

func (*ConfigEntity) GetBool

func (c *ConfigEntity) GetBool(key string, defaultValue ...bool) bool

GetBool 获取bool类型配置

func (*ConfigEntity) GetConfig

func (c *ConfigEntity) GetConfig() *viper.Viper

func (*ConfigEntity) GetDuration

func (c *ConfigEntity) GetDuration(key string, defaultValue ...time.Duration) time.Duration

GetDuration 获取time.Duration类型配置

func (*ConfigEntity) GetFloat64

func (c *ConfigEntity) GetFloat64(key string, defaultValue ...float64) float64

GetFloat64 获取float64类型配置

func (*ConfigEntity) GetInt

func (c *ConfigEntity) GetInt(key string, defaultValue ...int) int

GetInt 获取int类型配置

func (*ConfigEntity) GetIntSlice

func (c *ConfigEntity) GetIntSlice(key string, defaultValue ...[]int) []int

GetIntSlice 获取[]int类型配置

func (*ConfigEntity) GetString

func (c *ConfigEntity) GetString(key string, defaultValue ...string) string

GetString 获取string类型配置

func (*ConfigEntity) GetStringMap

func (c *ConfigEntity) GetStringMap(key string, defaultValue ...map[string]interface{}) map[string]interface{}

GetStringMap 获取map[string]interface{}类型配置

func (*ConfigEntity) GetStringMapString

func (c *ConfigEntity) GetStringMapString(key string, defaultValue ...map[string]string) map[string]string

GetStringMapString 获取map[string]string类型配置

func (*ConfigEntity) GetStringSlice

func (c *ConfigEntity) GetStringSlice(key string, defaultValue ...[]string) []string

GetStringSlice 获取[]string类型配置

func (*ConfigEntity) GetTime

func (c *ConfigEntity) GetTime(key string, defaultValue ...time.Time) time.Time

GetTime 获取time.Time类型配置

type GormDbConfig added in v0.0.7

type GormDbConfig struct {
	Driver       string
	Host         string
	Port         string
	Username     string
	Password     string
	Dbname       string
	Config       string
	Prefix       string
	Singular     bool
	Engine       string
	MaxIdleConns int
	MaxOpenConns int
	LogMode      string
	LogZap       bool
	Dsn          string
	ShowSQL      bool
}

func LoadDatabaseConfig

func LoadDatabaseConfig() *GormDbConfig

type LogConfig

type LogConfig struct {
	Level     string    `mapstructure:"level" json:"level" yaml:"level"`
	Pattern   string    `mapstructure:"pattern" json:"pattern" yaml:"pattern"`
	Output    string    `mapstructure:"output" json:"output" yaml:"output"`
	LogRotate LogRotate `mapstructure:"logRotate" json:"logRotate" yaml:"logRotate"`
}

func LoadLogConfig

func LoadLogConfig() LogConfig

type LogRotate

type LogRotate struct {
	Filename   string `mapstructure:"filename" json:"filename" yaml:"filename"`
	MaxSize    int    `mapstructure:"maxSize" json:"maxSize" yaml:"maxSize"`
	MaxBackups int    `mapstructure:"maxBackups" json:"maxBackups" yaml:"maxBackups"`
	MaxAge     int    `mapstructure:"maxAge" json:"maxAge" yaml:"maxAge"`
	Compress   bool   `mapstructure:"compress" json:"compress" yaml:"compress"`
}

type MqttConfig

type MqttConfig struct {
	Host         string `json:"host"`
	UserName     string `json:"user_name"`
	PassWord     string `json:"pass_word"`
	ClientID     string `json:"client_id"`
	Parallel     bool   `json:"parallel"`
	SubscribeQos uint8  `json:"subscribe_qos"`
	PublishQos   uint8  `json:"publish_qos"`
}

func LoadMqttConfig

func LoadMqttConfig() *MqttConfig

type QueueConfig

type QueueConfig struct {
	Prefix      string
	Listen      []string
	Interval    time.Duration
	Concurrency int
}

func LoadQueueConfig

func LoadQueueConfig() *QueueConfig

type RedisConfig

type RedisConfig struct {
	Mode               string
	SentinelMasterName string
	Addr               string
	Username           string
	Password           string
	Db                 int
	MaxActive          int
	MaxIdle            int
	IdleTimeout        time.Duration
	RedisPrefix        string
	DataCacheConfig    RedisDataCacheConfig
}

func LoadRedisConfig

func LoadRedisConfig() *RedisConfig

type RedisDataCacheConfig added in v0.0.7

type RedisDataCacheConfig struct {
	PoolSize           int
	RecordDuration     string
	RecordLimit        int
	PipelineBufferSize int
}

type ServerConfig added in v0.0.7

type ServerConfig struct {
	Name string

	Address       string
	Host          string
	HTTPSAddress  string
	HTTPSCertPath string
	HTTPSKeyPath  string

	TLSConfig *tls.Config `json:"tlsConfig"`

	// ReadTimeout 是读取整个请求(包括请求体)的最大持续时间。
	//
	// 由于 ReadTimeout 不允许处理程序对每个请求体的可接受截止时间或
	// 上传速率做出决定,大多数用户会更喜欢使用 ReadHeaderTimeout。
	// 同时使用两者是有效的。
	ReadTimeout time.Duration

	// WriteTimeout 是在超时之前写入响应的最大持续时间。
	// 每当读取新请求的头部时,它都会被重置。
	// 与 ReadTimeout 一样,它不允许处理程序在每个请求的基础上做出决定。
	WriteTimeout time.Duration

	// IdleTimeout 是在启用保持活动连接时等待下一个请求的最大时间。
	// 如果 IdleTimeout 为零,则使用 ReadTimeout 的值。
	// 如果两者都为零,则没有超时。
	IdleTimeout time.Duration

	// MaxHeaderBytes 控制服务器在解析请求头的键和值(包括请求行)时
	// 将读取的最大字节数。它不限制请求体的大小。
	//
	// 它可以在配置文件中使用如下字符串进行配置: 1m, 10m, 500kb 等。
	// 默认为 10240 字节。
	MaxHeaderBytes int

	// KeepAlive 启用 HTTP keep-alive。
	KeepAlive bool

	// ServerAgent 指定服务器代理信息,将写入 HTTP 响应头的 "Server" 字段。
	ServerAgent string

	// Rewrites 指定 URI 重写规则映射。
	Rewrites map[string]string

	// IndexFiles 指定静态文件夹的索引文件。
	IndexFiles []string

	// IndexFolder 指定在请求文件夹时是否列出子文件。
	// 如果为 false,服务器响应 HTTP 状态码 403。
	IndexFolder bool

	// ServerRoot 指定静态服务的根目录。
	ServerRoot string

	// SearchPaths 指定静态服务的额外搜索目录。
	SearchPaths []string

	// StaticPaths 指定 URI 到目录映射数组。
	StaticPaths []staticPathItem

	// FileServerEnabled 是静态服务的全局开关。
	// 如果设置了任何静态路径,它会自动启用。
	FileServerEnabled bool

	// CookieMaxAge 指定 cookie 项的最大 TTL。
	CookieMaxAge time.Duration

	// CookiePath 指定 cookie 路径。
	// 它也会影响会话 ID 的默认存储。
	CookiePath string

	// CookieDomain 指定 cookie 域。
	// 它也会影响会话 ID 的默认存储。
	CookieDomain string

	// CookieSameSite 指定 cookie 的 SameSite 属性。
	// 它也会影响会话 ID 的默认存储。
	CookieSameSite string

	// CookieSecure 指定 cookie 的 Secure 属性。
	// 它也会影响会话 ID 的默认存储。
	CookieSecure bool

	// CookieHttpOnly 指定 cookie 的 HttpOnly 属性。
	// 它也会影响会话 ID 的默认存储。
	CookieHttpOnly bool

	// SessionIdName 指定会话 ID 的名称。
	SessionIdName string

	// SessionMaxAge 指定会话项的最大 TTL。
	SessionMaxAge time.Duration

	// SessionPath 指定用于存储会话文件的会话存储目录路径。
	// 它仅在会话存储类型为文件存储时有意义。
	SessionPath string

	// SessionCookieMaxAge 指定会话 ID 的 cookie TTL。
	// 如果设置为 0,则表示它随浏览器会话一起过期。
	SessionCookieMaxAge time.Duration

	// SessionCookieOutput 指定是否自动将会话 ID 输出到 cookie。
	SessionCookieOutput bool

	PProfEnabled bool   // PProfEnabled 启用 PProf 功能。
	PProfPattern string // PProfPattern 指定路由器的 PProf 服务模式。

	StatsVizEnabled bool   // StatsVizEnabled 启用 StatsViz 功能。
	StatsVizPort    string // StatsVizPort 指定 StatsViz 服务端口。

	OpenApiPath       string `json:"openapiPath"`       // OpenApiPath specifies the OpenApi specification file path.
	SwaggerPath       string `json:"swaggerPath"`       // SwaggerPath specifies the swagger UI path for route registering.
	SwaggerUITemplate string `json:"swaggerUITemplate"` // SwaggerUITemplate specifies the swagger UI custom template

	RouteOverWrite bool `json:"routeOverWrite"`
}

func LoadServerConfig added in v0.0.7

func LoadServerConfig() *ServerConfig

type TokenConfig

type TokenConfig struct {
	Key string `json:"key"`
	Exp int64  `json:"exp"`
}

func LoadTokenConfig

func LoadTokenConfig() *TokenConfig

type WebSocketConfig

type WebSocketConfig struct {
	WebSocketHost string `json:"webSocketHost"`
	WebSocketPort string `json:"webSocketPort"`
	Path          string
}

func LoadWebSocketConfig

func LoadWebSocketConfig() *WebSocketConfig

Jump to

Keyboard shortcuts

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