package main import ( "io/ioutil" _ "net/http/pprof" "os" "rocommon" "rocommon/service" _ "rocommon/socket" _ "rocommon/socket/mysql" _ "rocommon/socket/tcp" "roserver/baseserver" "roserver/baseserver/model" dbModel "roserver/db/model" "runtime" "strconv" "syscall" ) func main() { //记录gate pid用来做关闭操作 sysType := runtime.GOOS if sysType != "windows" { if pid := syscall.Getpid(); pid != 1 { fileName := "db_server.pid" + strconv.Itoa(pid) ioutil.WriteFile(fileName, []byte(strconv.Itoa(pid)), 0777) defer os.Remove(fileName) } } //log.SetFlags(log.Lshortfile | log.LstdFlags) //prof := profile.Start(profile.MemProfile, profile.ProfilePath("./pprof/db.pprof"), profile.NoShutdownHook) baseserver.Init(model.SERVICE_NODE_TYPE_DB_STR, dbModel.ConfigInit, &dbModel.DBUpdate{}) sConfig := service.GetServiceConfig() for _, concern := range sConfig.Node.Concern { baseserver.CreateConnector(baseserver.ServiceParam{ DiscoveryServiceName: concern, DiscoveryServiceZone: sConfig.Node.Zone, ServiceName: model.SERVICE_NODE_TYPE_DB_STR, ServiceType: "tcpConnector", ProcName: "db.backend", }) } //创建服务器之间的监听 var acceNode rocommon.ServerNode = nil if sConfig.Node.Addr != "" { acceNode = baseserver.CreateAcceptor(baseserver.ServiceParam{ ServiceType: "tcpAcceptor", ServiceName: model.SERVICE_NODE_TYPE_DB_STR, ProcName: "db.backend", LisAddr: sConfig.Node.Addr, }, sConfig) } baseserver.Wait() //prof.Stop() baseserver.Exit(acceNode) }