main3.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package main_backup
  2. // 注册到etcd 的 rest 服务
  3. import (
  4. _ "hello_rpc/routers"
  5. "os"
  6. "strconv"
  7. "github.com/astaxie/beego"
  8. "github.com/docopt/docopt-go"
  9. "gogs.ywtinfo.com/ywtgo/tools/rpccore"
  10. )
  11. const (
  12. FrameworkVersion = "1.0"
  13. )
  14. 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]
  15. Options:
  16. -c set config file
  17. -L set output log file, default is publisher.log
  18. -p set listen port
  19. -h --help Show this screen.
  20. -V --version Show version.
  21. --etcd=<127.0.0.1:2379> set the etcd address.
  22. --app-env=default set starting env.
  23. --host set reg host.
  24. --redis-addr=<127.0.0.1:6379> set redis address.
  25. `
  26. func main() {
  27. registerRestServerTest()
  28. beego.Run()
  29. }
  30. // ------------- rest server start -----------------------------
  31. func registerRestServerTest() {
  32. arguments, err := docopt.Parse(usage, nil, true, FrameworkVersion, true)
  33. if err != nil {
  34. os.Exit(1)
  35. }
  36. etcdAddress := "127.0.0.1:2379"
  37. if etcdAddressTemp := arguments["--etcd"]; etcdAddressTemp != nil {
  38. etcdAddress = etcdAddressTemp.(string)
  39. }
  40. port := 10087
  41. if protTemp := arguments["-p"]; protTemp != nil {
  42. pStr := protTemp.(string)
  43. port, _ = strconv.Atoi(pStr)
  44. }
  45. host := os.Getenv("LOCAL_IP")
  46. if host == "" {
  47. host = "127.0.0.1"
  48. }
  49. if hostTemp := arguments["--host"]; hostTemp != nil {
  50. host = hostTemp.(string)
  51. }
  52. appEnv := "default"
  53. if appEnvTemp := arguments["--app-env"]; appEnvTemp != nil {
  54. appEnv = appEnvTemp.(string)
  55. }
  56. // fmt.Println(logFile, configFile, etcdAddress, port, host, redisAddr)
  57. gs := rpccore.NewEtcdRegistry(appEnv, []string{etcdAddress})
  58. gs.AddRestService("com.ywt.GoUserService", host, int(port))
  59. gs.Register()
  60. }
  61. // ------------- end rest server -----------------------------