main.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package main
  2. import (
  3. "github.com/pkg/profile"
  4. "io/ioutil"
  5. "os"
  6. "rocommon/service"
  7. _ "rocommon/socket"
  8. _ "rocommon/socket/tcp"
  9. "roserver/baseserver"
  10. "roserver/baseserver/model"
  11. _ "roserver/server_map_router/model"
  12. model2 "roserver/server_map_router/model"
  13. _ "roserver/server_map_router/msg"
  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 := "map_router_server.pid" + strconv.Itoa(pid)
  24. ioutil.WriteFile(fileName, []byte(strconv.Itoa(pid)), 0777)
  25. defer os.Remove(fileName)
  26. }
  27. }
  28. //CPU
  29. prof := profile.Start(profile.CPUProfile, profile.ProfilePath("./pprof/servermaprouter.pprof"), profile.NoShutdownHook)
  30. baseserver.Init(model.SERVICE_NODE_TYPE_MAP_ROUTER_STR, nil, &model2.AoiRouterUpdate{})
  31. //先建立服务器对应的连接,在监听客户端
  32. sConfig := service.GetServiceConfig()
  33. for _, concern := range sConfig.Node.Concern {
  34. //建立需要链接的服务器,可以通过服务器发现etcd来处理(包含在了CreateConnector中)
  35. baseserver.CreateConnector(baseserver.ServiceParam{
  36. DiscoveryServiceName: concern,
  37. DiscoveryServiceZone: sConfig.Node.Zone,
  38. ServiceType: "tcpConnector",
  39. ServiceName: model.SERVICE_NODE_TYPE_MAP_ROUTER_STR,
  40. ProcName: "common.backend",
  41. })
  42. }
  43. baseserver.Wait()
  44. //CPU
  45. prof.Stop()
  46. baseserver.Exit(nil)
  47. /*
  48. //内存使用详情
  49. f, err := os.Create("./pprof/servermaprouter.pprof/maprouter_mem_profile.pro")
  50. if err != nil {
  51. log.Println("err:", err)
  52. }
  53. pprof.WriteHeapProfile(f)
  54. f.Close()
  55. */
  56. }