main2.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package main_backup
  2. import (
  3. "fmt"
  4. controllers "hello_rpc/controllers"
  5. pb "hello_rpc/grpc/gapi"
  6. _ "hello_rpc/routers"
  7. "os"
  8. "strconv"
  9. "github.com/astaxie/beego"
  10. "github.com/docopt/docopt-go"
  11. "gogs.ywtinfo.com/ywtgo/tools/rpccore"
  12. "google.golang.org/grpc"
  13. )
  14. const (
  15. FrameworkVersion = "1.0"
  16. )
  17. var usage = `Usage: agent [-c config_file] [-L log_file] [--log-level=<loglevel>] [--etcd=127.0.0.1:2379[,127.0.0.2:2379]] [-p 3000] [--app-env=default] [--host=127.0.0.1] [--redis-addr=127.0.0.1:6379]
  18. Options:
  19. -c set config file
  20. -L set output log file, default is publisher.log
  21. -p set listen port
  22. -h --help Show this screen.
  23. -V --version Show version.
  24. --etcd=<127.0.0.1:2379> set the etcd address.
  25. --app-env=default set starting env.
  26. --host set reg host.
  27. --redis-addr=<127.0.0.1:6379> set redis address.
  28. `
  29. // 包含etcd注册的grpc服务
  30. func main() {
  31. registerGrpcServerTest()
  32. beego.Run()
  33. }
  34. // ------------- grpc server start -----------------------------
  35. func registerGrpcServerTest() {
  36. arguments, err := docopt.Parse(usage, nil, true, FrameworkVersion, true)
  37. if err != nil {
  38. os.Exit(1)
  39. }
  40. logFile := "publisher.log"
  41. if logFileNamet := arguments["-L"]; logFileNamet != nil {
  42. logFile = logFileNamet.(string)
  43. }
  44. configFile := "publisher.cfg"
  45. if configFilet := arguments["-c"]; configFilet != nil {
  46. configFile = configFilet.(string)
  47. }
  48. etcdAddress := "127.0.0.1:2379"
  49. if etcdAddressTemp := arguments["--etcd"]; etcdAddressTemp != nil {
  50. etcdAddress = etcdAddressTemp.(string)
  51. }
  52. port := 10087
  53. if protTemp := arguments["-p"]; protTemp != nil {
  54. pStr := protTemp.(string)
  55. port, _ = strconv.Atoi(pStr)
  56. }
  57. host := os.Getenv("LOCAL_IP")
  58. if host == "" {
  59. host = "127.0.0.1"
  60. }
  61. if hostTemp := arguments["--host"]; hostTemp != nil {
  62. host = hostTemp.(string)
  63. }
  64. appEnv := "default"
  65. if appEnvTemp := arguments["--app-env"]; appEnvTemp != nil {
  66. appEnv = appEnvTemp.(string)
  67. }
  68. redisAddr := "127.0.0.1:6379"
  69. if redisAddrTemp := arguments["--redis-addr"]; redisAddrTemp != nil {
  70. redisAddr = redisAddrTemp.(string)
  71. }
  72. fmt.Println(logFile, configFile, etcdAddress, port, host, redisAddr)
  73. gs := rpccore.NewGrpcServerStarter(appEnv, host, int(port), []string{etcdAddress}, true, nil)
  74. gs.RegisterService("com.ywt.gapi.user.GoUserService", func(s *grpc.Server) { pb.RegisterUserServiceServer(s, controllers.NewUserServiceServer(redisAddr)) })
  75. gs.Serve()
  76. }
  77. // ------------- end grpc server -----------------------------