main.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package main
  2. import (
  3. "io/ioutil"
  4. _ "net/http/pprof"
  5. "os"
  6. "rocommon"
  7. "rocommon/service"
  8. _ "rocommon/socket"
  9. _ "rocommon/socket/mysql"
  10. _ "rocommon/socket/tcp"
  11. "roserver/baseserver"
  12. "roserver/baseserver/model"
  13. dbModel "roserver/db/model"
  14. "runtime"
  15. "strconv"
  16. "syscall"
  17. )
  18. func main() {
  19. //记录gate pid用来做关闭操作
  20. sysType := runtime.GOOS
  21. if sysType != "windows" {
  22. if pid := syscall.Getpid(); pid != 1 {
  23. fileName := "db_server.pid" + strconv.Itoa(pid)
  24. ioutil.WriteFile(fileName, []byte(strconv.Itoa(pid)), 0777)
  25. defer os.Remove(fileName)
  26. }
  27. }
  28. //log.SetFlags(log.Lshortfile | log.LstdFlags)
  29. //prof := profile.Start(profile.MemProfile, profile.ProfilePath("./pprof/db.pprof"), profile.NoShutdownHook)
  30. baseserver.Init(model.SERVICE_NODE_TYPE_DB_STR, dbModel.ConfigInit, &dbModel.DBUpdate{})
  31. sConfig := service.GetServiceConfig()
  32. for _, concern := range sConfig.Node.Concern {
  33. baseserver.CreateConnector(baseserver.ServiceParam{
  34. DiscoveryServiceName: concern,
  35. DiscoveryServiceZone: sConfig.Node.Zone,
  36. ServiceName: model.SERVICE_NODE_TYPE_DB_STR,
  37. ServiceType: "tcpConnector",
  38. ProcName: "db.backend",
  39. })
  40. }
  41. //创建服务器之间的监听
  42. var acceNode rocommon.ServerNode = nil
  43. if sConfig.Node.Addr != "" {
  44. acceNode = baseserver.CreateAcceptor(baseserver.ServiceParam{
  45. ServiceType: "tcpAcceptor",
  46. ServiceName: model.SERVICE_NODE_TYPE_DB_STR,
  47. ProcName: "db.backend",
  48. LisAddr: sConfig.Node.Addr,
  49. }, sConfig)
  50. }
  51. baseserver.Wait()
  52. //prof.Stop()
  53. baseserver.Exit(acceNode)
  54. }