first commit
This commit is contained in:
146
service/group/config/config.go
Normal file
146
service/group/config/config.go
Normal file
@@ -0,0 +1,146 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"github.com/BurntSushi/toml"
|
||||
"gitlab.33.cn/chat/dtalk/pkg/net/grpc"
|
||||
xgrpc "gitlab.33.cn/chat/dtalk/pkg/net/grpc"
|
||||
"gitlab.33.cn/chat/dtalk/pkg/redis"
|
||||
xtime "gitlab.33.cn/chat/dtalk/pkg/time"
|
||||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
confPath string
|
||||
|
||||
Conf *Config
|
||||
)
|
||||
|
||||
func init() {
|
||||
flag.StringVar(&confPath, "conf", "group.toml", "default config path.")
|
||||
}
|
||||
|
||||
// Init init config.
|
||||
func Init() (err error) {
|
||||
Conf = Default()
|
||||
_, err = toml.DecodeFile(confPath, &Conf)
|
||||
return
|
||||
}
|
||||
|
||||
func Default() *Config {
|
||||
return &Config{
|
||||
HttpServer: &HttpServer{
|
||||
Addr: "0.0.0.0:18011",
|
||||
},
|
||||
MySQL: &MySQL{
|
||||
Host: "127.0.0.1",
|
||||
Port: 3306,
|
||||
User: "root",
|
||||
Pwd: "123456",
|
||||
Db: "dtalk",
|
||||
},
|
||||
Reg: &Reg{
|
||||
Schema: "dtalk",
|
||||
SrvName: "group",
|
||||
RegAddrs: "127.0.0.1:2379",
|
||||
},
|
||||
LogicRPCClient: &RPCClient{
|
||||
RegAddrs: "127.0.0.1:2379",
|
||||
Schema: "im",
|
||||
SrvName: "logic",
|
||||
Dial: xtime.Duration(time.Second),
|
||||
Timeout: xtime.Duration(time.Second),
|
||||
},
|
||||
IdGenRPCClient: &RPCClient{
|
||||
RegAddrs: "127.0.0.1:2379",
|
||||
Schema: "dtalk",
|
||||
SrvName: "generator",
|
||||
Dial: xtime.Duration(time.Second),
|
||||
Timeout: xtime.Duration(time.Second),
|
||||
},
|
||||
AnswerRPCClient: &RPCClient{
|
||||
RegAddrs: "127.0.0.1:2379",
|
||||
Schema: "dtalk",
|
||||
SrvName: "answer",
|
||||
Dial: xtime.Duration(time.Second),
|
||||
Timeout: xtime.Duration(time.Second),
|
||||
},
|
||||
GRPCServer: &xgrpc.ServerConfig{
|
||||
Network: "tcp",
|
||||
Addr: ":18012",
|
||||
Timeout: xtime.Duration(time.Second),
|
||||
KeepAliveMaxConnectionIdle: xtime.Duration(time.Second * 60),
|
||||
KeepAliveMaxConnectionAge: xtime.Duration(time.Hour * 2),
|
||||
KeepAliveMaxMaxConnectionAgeGrace: xtime.Duration(time.Second * 20),
|
||||
KeepAliveTime: xtime.Duration(time.Second * 60),
|
||||
KeepAliveTimeout: xtime.Duration(time.Second * 20),
|
||||
},
|
||||
GroupInfoConfig: &GroupDefault{
|
||||
GroupMaximum: 200,
|
||||
AdminNum: 10,
|
||||
},
|
||||
Redis: &redis.Config{
|
||||
Network: "tcp",
|
||||
Addr: "127.0.0.1:6379",
|
||||
Auth: "",
|
||||
Active: 60000,
|
||||
Idle: 1024,
|
||||
DialTimeout: xtime.Duration(200 * time.Millisecond),
|
||||
ReadTimeout: xtime.Duration(500 * time.Millisecond),
|
||||
WriteTimeout: xtime.Duration(500 * time.Millisecond),
|
||||
IdleTimeout: xtime.Duration(120 * time.Second),
|
||||
Expire: xtime.Duration(30 * time.Minute),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
Env string
|
||||
AppId string
|
||||
HttpServer *HttpServer
|
||||
MySQL *MySQL
|
||||
Reg *Reg
|
||||
LogicRPCClient *RPCClient
|
||||
IdGenRPCClient *RPCClient
|
||||
//PusherRPCClient *RPCClient
|
||||
AnswerRPCClient *RPCClient
|
||||
//gRPC server
|
||||
GRPCServer *grpc.ServerConfig
|
||||
GroupInfoConfig *GroupDefault
|
||||
Redis *redis.Config
|
||||
}
|
||||
|
||||
type HttpServer struct {
|
||||
Addr string
|
||||
}
|
||||
|
||||
type MySQL struct {
|
||||
Host string
|
||||
Port int32
|
||||
User string
|
||||
Pwd string
|
||||
Db string
|
||||
}
|
||||
|
||||
// Reg is service register/discovery config
|
||||
type Reg struct {
|
||||
Schema string
|
||||
SrvName string // call
|
||||
RegAddrs string // etcd addrs, seperate by ','
|
||||
}
|
||||
|
||||
// RPCClient is RPC client config.
|
||||
type RPCClient struct {
|
||||
RegAddrs string
|
||||
Schema string
|
||||
SrvName string // call
|
||||
Dial xtime.Duration
|
||||
Timeout xtime.Duration
|
||||
}
|
||||
|
||||
type GroupDefault struct {
|
||||
// 群人数上限 [200, 2000]
|
||||
GroupMaximum int32
|
||||
// 群管理员人数上限 [10, 10]
|
||||
AdminNum int32
|
||||
}
|
||||
Reference in New Issue
Block a user