main.go 985 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package main
  2. import (
  3. "app.yhyue.com/BP/servicerd/proto"
  4. "flag"
  5. "google.golang.org/grpc"
  6. "log"
  7. "net"
  8. )
  9. var (
  10. addr = flag.String("addr", ":10021", "监听地址")
  11. serviceTtl = flag.Int64("ttl", 30, "服务失效时间(秒)")
  12. resourceUsedTimeout = flag.Int64("ruto", 120, "服务资源占用失效时间,过期自动收回(秒)")
  13. )
  14. func init() {
  15. flag.Parse()
  16. }
  17. //
  18. func main() {
  19. //初始化内存数据库
  20. InitDb()
  21. //失效服务检查
  22. go ClearTimeoutService(*serviceTtl)
  23. go ClearTimeoutUsedResource(*resourceUsedTimeout)
  24. //监听端口
  25. lis, err := net.Listen("tcp", *addr)
  26. if err != nil {
  27. log.Fatalln(err.Error())
  28. return
  29. }
  30. //创建一个grpc 服务器
  31. s := grpc.NewServer()
  32. //注册事件
  33. //1.服务器负载
  34. proto.RegisterServerLoadServer(s, &ServerLoad{})
  35. //2.服务心跳
  36. proto.RegisterHeartBeatServer(s, &Heartbeat{})
  37. //3.服务治理
  38. proto.RegisterServiceServer(s, &Service{})
  39. //处理链接
  40. _ = s.Serve(lis)
  41. }