config

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Dec 5, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package config @Title title @Description desc @Author yr 2024/11/28 @Update yr 2024/11/28

Index

Constants

View Source
const (
	Debug   = `debug`
	Release = `release`
)

Variables

View Source
var (
	Conf = new(conf)
)

Functions

func GetDiscoveryConf

func GetDiscoveryConf(name string) interface{}

func GetServiceConf

func GetServiceConf(serviceName string) interface{}

func GetStatus

func GetStatus() string

func Init

func Init(confPath string)

func IsDebug

func IsDebug() bool

IsDebug 返回是否为调试模式

func RegisterDiscoveryConf

func RegisterDiscoveryConf(name string, conf interface{})

func RegisterServiceConf

func RegisterServiceConf(cfgs ...*ServiceConfig)

func SetStatus

func SetStatus(status string)

SetStatus 设置系统状态

Types

type ClusterConf

type ClusterConf struct {
	ETCDConf       *ETCDConf          `binding:"required"` // etcd配置
	RPCServer      *RPCServer         `binding:""`         // rpc服务配置
	RemoteType     string             `binding:""`         // 远程服务类型(默认rpcx)
	DiscoveryType  string             `binding:""`         // 服务发现类型(默认etcd)
	RemoteConfPath string             `binding:""`         // 远程配置路径(开启了远程配置才会使用,且必须配置etcd)
	DiscoveryConf  *EtcdDiscoveryConf `binding:""`         // 服务发现配置(目前先直接配置,后续会支持多种服务发现方式)
}

type ETCDConf

type ETCDConf struct {
	Endpoints   []string
	DialTimeout time.Duration // 默认3秒
	UserName    string
	Password    string
}

type EtcdDiscoveryConf

type EtcdDiscoveryConf struct {
	Path string
	TTL  int64
}

type NodeConf

type NodeConf struct {
	NodeId           string        `binding:""`         // 节点ID(目前这个没用,节点id是节点启动的时候自动生成的)
	SystemStatus     string        `binding:"required"` // 系统状态(debug/release)
	PVCPath          string        `binding:"required"` // 数据持久化目录(默认./data)
	PVPath           string        `binding:"required"` // 缓存目录(默认./run)
	ProfilerInterval time.Duration `binding:""`         // 性能分析间隔(默认0,不开启)
	AntsPoolSize     int           `binding:"required"` // 线程池大小
}

type RPCServer

type RPCServer struct {
	Addr   string // rpc监听地址
	Protoc string // 协议
}

type ServiceConf

type ServiceConf struct {
	OpenRemote      bool                      `binding:""`         // 是否开启远程配置(默认使用本地)
	RemoteConfPath  string                    `binding:""`         // 远程配置路径(开启了远程配置才会使用,且必须配置etcd)
	StartServices   []*ServiceInitConf        `binding:"required"` // 启动服务列表(按照配置的顺序启动!!)
	ServicesConfMap map[string]*ServiceConfig `binding:"required"` // 服务配置
}

type ServiceConfig

type ServiceConfig struct {
	ServiceName   string             // 服务名称
	ConfName      string             // 配置文件名称
	ConfPath      string             // 配置文件路径
	ConfType      string             // 配置文件类型
	CfgCreator    func() interface{} // 配置获取器(获取真实的配置格式)
	Cfg           interface{}        // 配置结构体
	DefaultSetFun func(*viper.Viper) // 默认配置函数
	OnChangeFun   func()             // 配置变化处理函数
}

type ServiceInitConf

type ServiceInitConf struct {
	ServiceName  string // 服务名称
	Type         string // 服务类型
	ServerId     int32  // 服务ID
	TimerSize    int    // 定时器数量
	MailBoxSize  int    // 事件队列数量
	GoroutineNum int32  // 协程数量
	RpcType      string // 远程调用方式(默认使用rpcx)
}

Directories

Path Synopsis
Package remote @Title viper的远程配置 @Description 用于读取远程配置 @Author yr 2024/12/2 @Update yr 2024/12/2
Package remote @Title viper的远程配置 @Description 用于读取远程配置 @Author yr 2024/12/2 @Update yr 2024/12/2

Jump to

Keyboard shortcuts

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