Documentation
¶
Index ¶
- Constants
- Variables
- func GetRedisClient() *redis.Client
- func InstanceI18N() *i18n.Option
- func SetRedisClient(c *redis.Client)
- func Setup(s []source.Source, fs ...func()) error
- type Application
- type Cache
- type Config
- type DBResolverConfig
- type Database
- type Etcd
- type Gen
- type GrpcServer
- type HttpServer
- type Jwt
- type Locker
- type Logger
- type NSQOptions
- type RedisConnectOptions
- type Settings
- type Ssl
- type Tls
Constants ¶
View Source
const ( MySQL = "mysql" Postgres = "postgres" SQLite = "sqlite" )
Variables ¶
View Source
var ApplicationConfig = new(Application)
View Source
var CacheConfig = new(Cache)
CacheConfig cache配置
View Source
var EtcdConfig = new(Etcd)
View Source
var (
ExtendConfig interface{}
)
View Source
var GenConfig = new(Gen)
View Source
var GrpcServerConfig = new(GrpcServer)
View Source
var HttpServerConfig = new(HttpServer)
View Source
var I18NConfig = new(i18n.Option)
View Source
var JwtConfig = new(Jwt)
View Source
var LockerConfig = new(Locker)
View Source
var LoggerConfig = new(Logger)
View Source
var Provider = wire.NewSet( InstanceApplication, InstanceCache, InstanceDatabase, InstanceGen, IntanceJwt, InstanceLocker, InstanceLogger, InstanceSSL, InstanceI18N, )
View Source
var SslConfig = new(Ssl)
Functions ¶
func InstanceI18N ¶
Types ¶
type Application ¶
type Application struct {
ReadTimeout int `yaml:"readTimeout"`
WriterTimeout int `yaml:"writerTimeout"`
Name string `yaml:"name"`
Mode string `yaml:"mode"`
DemoMsg string `yaml:"demoMsg"`
EnableDP bool `yaml:"enableDP"`
}
func InstanceApplication ¶
func InstanceApplication() *Application
func (Application) IsDebug ¶
func (a Application) IsDebug() bool
type Cache ¶
type Cache struct {
Redis *RedisConnectOptions
Memory interface{}
}
func InstanceCache ¶
func InstanceCache() *Cache
type Config ¶
type Config struct {
Application *Application `yaml:"application"`
Http *HttpServer `yaml:"http"`
Grpc *GrpcServer `yaml:"grpc"`
Logger *Logger `yaml:"logger"`
Jwt *Jwt `yaml:"jwt"`
Registry *Etcd `yaml:"registry"`
Database *Database `yaml:"database"`
Databases *map[string]*Database `yaml:"databases"`
Gen *Gen `yaml:"gen"`
Cache *Cache `yaml:"cache"`
Locker *Locker `yaml:"locker"`
Extend interface{} `yaml:"extend"`
I18n *i18n.Option `yaml:"i18n"`
}
Config 配置集合
type DBResolverConfig ¶
type Database ¶
type Database struct {
Driver string `yaml:"driver"`
Source string `yaml:"source"`
ConnMaxIdleTime int `yaml:"connMaxIdleTime"`
ConnMaxLifeTime int `yaml:"connMaxLifeTime"`
MaxIdleConns int `yaml:"maxIdleConns"`
MaxOpenConns int `yaml:"maxOpenConns"`
AutoMigrate bool `yaml:"autoMigrate"`
Registers []DBResolverConfig `yaml:"registers"`
Logger *Logger `yaml:"logger"`
}
func InstanceDatabase ¶
func InstanceDatabase() *Database
type Gen ¶
func InstanceGen ¶
func InstanceGen() *Gen
type GrpcServer ¶
type GrpcServer struct {
Network string `json:"network"` // tcp / udp
Host string `yaml:"host"` // 主机
Port int64 `yaml:"port"` // 端口
WhiteList []string `yaml:"whiteList"` // 白名单
ExceptList []string `yaml:"exceptList"` // 黑名单
TLS *Ssl `yaml:"tls"` // TLS
}
func InstanceGrpc ¶
func InstanceGrpc() *GrpcServer
type HttpServer ¶
type HttpServer struct {
Host string `yaml:"host"` // 主机
Port int64 `yaml:"port"` // 端口
WhiteList []string `yaml:"whiteList"` // 白名单
ExceptList []string `yaml:"exceptList"` // 黑名单
TLS *Ssl `yaml:"tls"` // TLS
}
func InstanceHttp ¶
func InstanceHttp() *HttpServer
type Locker ¶
type Locker struct {
Redis *RedisConnectOptions
}
func InstanceLocker ¶
func InstanceLocker() *Locker
type Logger ¶
type Logger struct {
Type string `yaml:"type"`
Path string `yaml:"path"`
Level string `yaml:"level"`
Stdout string `yaml:"stdout"`
EnabledDB bool `yaml:"enabledDB"`
Cap uint `yaml:"cap"`
SkipCount int `yaml:"skipCount"`
}
func InstanceLogger ¶
func InstanceLogger() *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 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 兼容原先的配置结构
Click to show internal directories.
Click to hide internal directories.