config

package
v1.3.8 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2024 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DatabaseConfig  = new(Database)
	DatabasesConfig = make(map[string]*Database)
)
View Source
var ApplicationConfig = new(Application)
View Source
var CacheConfig = new(Cache)

CacheConfig cache配置

View Source
var EsConfig = new(EsOption)
View Source
var (
	ExtendConfig interface{}
)
View Source
var GenConfig = new(Gen)
View Source
var JwtConfig = new(Jwt)
View Source
var LockerConfig = new(Locker)
View Source
var LoggerConfig = new(Logger)
View Source
var OssConfig = new(OssOption)
View Source
var QueueConfig = new(Queue)
View Source
var SmsConfig = new(SmsOption)
View Source
var SmtpConfig = new(Smtp)
View Source
var SslConfig = new(Ssl)
View Source
var WxPayConfig = new(WxPay)

Functions

func GetRedisClient

func GetRedisClient() *redis.Client

GetRedisClient 获取redis客户端

func SetRedisClient

func SetRedisClient(c *redis.Client)

SetRedisClient 设置redis客户端

func Setup

func Setup(s source.Source,
	fs ...func())

Setup 载入配置文件

Types

type Application

type Application struct {
	ReadTimeout   int
	WriterTimeout int
	Host          string
	Port          int64
	Name          string
	JwtSecret     string
	Mode          string
	DemoMsg       string
	EnableDP      bool
}

type Cache

type Cache struct {
	Redis  *RedisConnectOptions
	Memory interface{}
}

func (Cache) Setup

func (e Cache) Setup() (storage.AdapterCache, error)

Setup 构造cache 顺序 redis > 其他 > memory

type Config

type Config struct {
	Application *Application          `yaml:"application"`
	Ssl         *Ssl                  `yaml:"ssl"`
	Logger      *Logger               `yaml:"logger"`
	Jwt         *Jwt                  `yaml:"jwt"`
	Database    *Database             `yaml:"database"`
	Databases   *map[string]*Database `yaml:"databases"`
	Gen         *Gen                  `yaml:"gen"`
	Cache       *Cache                `yaml:"cache"`
	Queue       *Queue                `yaml:"queue"`
	Locker      *Locker               `yaml:"locker"`
	Sms         *SmsOption            `yaml:"sms"`
	Oss         *OssOption            `yaml:"oss"`
	Smtp        *Smtp                 `yaml:"smtp"`
	WxPay       *WxPay                `yaml:"wxPay"`
	Es          *EsOption             `yaml:"es"`
	Extend      interface{}           `yaml:"extend"`
}

Config 配置集合

type DBResolverConfig

type DBResolverConfig struct {
	Sources  []string
	Replicas []string
	Policy   string
	Tables   []string
}

type Database

type Database struct {
	Driver          string
	Source          string
	ConnMaxIdleTime int
	ConnMaxLifeTime int
	MaxIdleConns    int
	MaxOpenConns    int
	Registers       []DBResolverConfig
}

type Es added in v1.1.5

type Es struct {
	Host  string `yaml:"host" json:"host"`
	Index string `yaml:"index" json:"index"`
	Type  string `yaml:"type" json:"type"`
}

type EsOption added in v1.1.5

type EsOption struct {
	*Es
}

func (EsOption) Empty added in v1.1.5

func (e EsOption) Empty() bool

Empty 空设置

func (EsOption) Setup added in v1.1.5

func (e EsOption) Setup() (storage.AdapterEs, error)

type Gen

type Gen struct {
	DBName    string
	FrontPath string
}

type Jwt

type Jwt struct {
	Secret  string
	Timeout int64
}

type Locker

type Locker struct {
	Redis *RedisConnectOptions
}

func (Locker) Empty

func (e Locker) Empty() bool

Empty 空设置

func (Locker) Setup

func (e Locker) Setup() (storage.AdapterLocker, error)

Setup 启用顺序 redis > 其他 > memory

type Logger

type Logger struct {
	Type      string
	Path      string
	Level     string
	Stdout    string
	EnabledDB bool
	Cap       uint
}

func (Logger) Setup

func (e Logger) Setup()

Setup 设置logger

type NSQOptions

type NSQOptions struct {
	DialTimeout time.Duration `opt:"dial_timeout" default:"1s"`

	// Deadlines for network reads and writes
	ReadTimeout  time.Duration `opt:"read_timeout" min:"100ms" max:"5m" default:"60s"`
	WriteTimeout time.Duration `opt:"write_timeout" min:"100ms" max:"5m" default:"1s"`

	// Addresses is the local address to use when dialing an nsqd.
	Addresses []string `opt:"addresses"`

	// Duration between polling lookupd for new producers, and fractional jitter to add to
	// the lookupd pool loop. this helps evenly distribute requests even if multiple consumers
	// restart at the same time
	//
	// NOTE: when not using nsqlookupd, LookupdPollInterval represents the duration of time between
	// reconnection attempts
	LookupdPollInterval time.Duration `opt:"lookupd_poll_interval" min:"10ms" max:"5m" default:"60s"`
	LookupdPollJitter   float64       `opt:"lookupd_poll_jitter" min:"0" max:"1" default:"0.3"`

	// Maximum duration when REQueueing (for doubling of deferred requeue)
	MaxRequeueDelay     time.Duration `opt:"max_requeue_delay" min:"0" max:"60m" default:"15m"`
	DefaultRequeueDelay time.Duration `opt:"default_requeue_delay" min:"0" max:"60m" default:"90s"`

	// Maximum amount of time to backoff when processing fails 0 == no backoff
	MaxBackoffDuration time.Duration `opt:"max_backoff_duration" min:"0" max:"60m" default:"2m"`
	// Unit of time for calculating consumer backoff
	BackoffMultiplier time.Duration `opt:"backoff_multiplier" min:"0" max:"60m" default:"1s"`

	// Maximum number of times this consumer will attempt to process a message before giving up
	MaxAttempts uint16 `opt:"max_attempts" min:"0" max:"65535" default:"5"`

	// Duration to wait for a message from an nsqd when in a state where RDY
	// counts are re-distributed (e.g. max_in_flight < num_producers)
	LowRdyIdleTimeout time.Duration `opt:"low_rdy_idle_timeout" min:"1s" max:"5m" default:"10s"`
	// Duration to wait until redistributing RDY for an nsqd regardless of LowRdyIdleTimeout
	LowRdyTimeout time.Duration `opt:"low_rdy_timeout" min:"1s" max:"5m" default:"30s"`
	// Duration between redistributing max-in-flight to connections
	RDYRedistributeInterval time.Duration `opt:"rdy_redistribute_interval" min:"1ms" max:"5s" default:"5s"`

	// Identifiers sent to nsqd representing this client
	// UserAgent is in the spirit of HTTP (default: "<client_library_name>/<version>")
	ClientID  string `opt:"client_id"` // (defaults: short hostname)
	Hostname  string `opt:"hostname"`
	UserAgent string `opt:"user_agent"`

	// Duration of time between heartbeats. This must be less than ReadTimeout
	HeartbeatInterval time.Duration `opt:"heartbeat_interval" default:"30s"`
	// Integer percentage to sample the channel (requires nsqd 0.2.25+)
	SampleRate int32 `opt:"sample_rate" min:"0" max:"99"`

	Tls *Tls `yaml:"tls" json:"tls"`

	// Compression Settings
	Deflate      bool `opt:"deflate"`
	DeflateLevel int  `opt:"deflate_level" min:"1" max:"9" default:"6"`
	Snappy       bool `opt:"snappy"`

	// Size of the buffer (in bytes) used by nsqd for buffering writes to this connection
	OutputBufferSize int64 `opt:"output_buffer_size" default:"16384"`
	// Timeout used by nsqd before flushing buffered writes (set to 0 to disable).
	//
	// WARNING: configuring clients with an extremely low
	// (< 25ms) output_buffer_timeout has a significant effect
	// on nsqd CPU usage (particularly with > 50 clients connected).
	OutputBufferTimeout time.Duration `opt:"output_buffer_timeout" default:"250ms"`

	// Maximum number of messages to allow in flight (concurrency knob)
	MaxInFlight int `opt:"max_in_flight" min:"0" default:"1"`

	// The server-side message timeout for messages delivered to this client
	MsgTimeout time.Duration `opt:"msg_timeout" min:"0"`

	// secret for nsqd authentication (requires nsqd 0.2.29+)
	AuthSecret string `opt:"auth_secret"`
}

func (NSQOptions) GetNSQOptions

func (e NSQOptions) GetNSQOptions() (*nsq.Config, error)

type Oss added in v1.0.9

type Oss struct {
	SecretId   string
	SecretKey  string
	AppId      string
	Bucket     string
	Region     string
	ExpireTime int64
}

type OssOption added in v1.0.9

type OssOption struct {
	*Oss
}

func (OssOption) Empty added in v1.0.9

func (e OssOption) Empty() bool

Empty 空设置

func (OssOption) Setup added in v1.0.9

func (e OssOption) Setup() (storage.AdapterOss, error)

type Queue

type Queue struct {
	Redis  *QueueRedis
	Memory *QueueMemory
	NSQ    *QueueNSQ `json:"nsq" yaml:"nsq"`
}

func (Queue) Empty

func (e Queue) Empty() bool

Empty 空设置

func (Queue) Setup

func (e Queue) Setup() (storage.AdapterQueue, error)

Setup 启用顺序 redis > 其他 > memory

type QueueMemory

type QueueMemory struct {
	PoolSize uint
}

type QueueNSQ

type QueueNSQ struct {
	NSQOptions
	ChannelPrefix string
}

type QueueRedis

type QueueRedis struct {
	RedisConnectOptions
	Producer *redisqueue.ProducerOptions
	Consumer *redisqueue.ConsumerOptions
}

type RedisConnectOptions

type RedisConnectOptions struct {
	Network    string `yaml:"network" json:"network"`
	Addr       string `yaml:"addr" json:"addr"`
	Username   string `yaml:"username" json:"username"`
	Password   string `yaml:"password" json:"password"`
	DB         int    `yaml:"db" json:"db"`
	PoolSize   int    `yaml:"pool_size" json:"pool_size"`
	Tls        *Tls   `yaml:"tls" json:"tls"`
	MaxRetries int    `yaml:"max_retries" json:"max_retries"`
}

func (RedisConnectOptions) GetRedisOptions

func (e RedisConnectOptions) GetRedisOptions() (*redis.Options, error)

type Settings

type Settings struct {
	Settings Config `yaml:"settings"`
	// contains filtered or unexported fields
}

Settings 兼容原先的配置结构

func (*Settings) Init

func (e *Settings) Init()

func (*Settings) OnChange

func (e *Settings) OnChange()

type Sms added in v1.0.9

type Sms struct {
	SecretId   string `yaml:"secretId" json:"secretId"`
	SecretKey  string `yaml:"secretKey" json:"secretKey"`
	Region     string `yaml:"region" json:"region"`
	SdkAppId   string `yaml:"sdkAppId" json:"sdkAppId"`
	SignName   string `yaml:"signName" json:"signName"`
	TemplateId string `yaml:"templateId" json:"templateId"`
}

type SmsOption added in v1.0.9

type SmsOption struct {
	*Sms
}

func (SmsOption) Empty added in v1.0.9

func (e SmsOption) Empty() bool

Empty 空设置

func (SmsOption) Setup added in v1.0.9

func (e SmsOption) Setup() (storage.AdapterSms, error)

type Smtp added in v1.1.4

type Smtp struct {
	Enable   bool
	Host     string
	Port     int32
	Email    string
	Password string
}

type Ssl

type Ssl struct {
	KeyStr string
	Pem    string
	Enable bool
	Domain string
}

type Tls

type Tls struct {
	Cert string `yaml:"cert" json:"cert"`
	Key  string `yaml:"key" json:"key"`
	Ca   string `yaml:"ca" json:"ca"`
}

type WxPay added in v1.1.4

type WxPay struct {
	AppId                      string
	MchId                      string
	MchCertificateSerialNumber string
	PrivateKeyPath             string
	NotifyUrl                  string
	MchAPIv3Key                string
}

Jump to

Keyboard shortcuts

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