bxbase.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package main
  2. import (
  3. MC "app.yhyue.com/moapp/jybase/common"
  4. "app.yhyue.com/moapp/jybase/endless"
  5. logrusx "app.yhyue.com/moapp/jylogx/logx"
  6. "fmt"
  7. "github.com/zeromicro/go-zero/core/logx"
  8. IC "jyBXBase/api/init"
  9. "log"
  10. "net/http"
  11. "os"
  12. "os/signal"
  13. "syscall"
  14. "bp.jydev.jianyu360.cn/BaseService/gateway/core/node"
  15. "github.com/randolphcyg/gozeropprof"
  16. "github.com/zeromicro/go-zero/rest"
  17. "jyBXBase/api/internal/handler"
  18. "jyBXBase/api/internal/svc"
  19. )
  20. func main() {
  21. gozeropprof.StartAgent("0.0.0.0", 6060)
  22. //注册代理服务
  23. closeNotify, err := node.NewNode(IC.C.Gateway.Etcd...).Register(IC.C.Gateway.ServerCode, MC.InterfaceToStr(IC.C.Port))
  24. if err != nil {
  25. panic(err)
  26. }
  27. go func() {
  28. err := endless.ListenAndServe(":"+MC.InterfaceToStr(IC.C.Webrpcport), nil, func() {})
  29. if err != nil {
  30. log.Println("ListenAndServe: ", err)
  31. }
  32. }()
  33. ctx := svc.NewServiceContext(IC.C)
  34. server := rest.MustNewServer(IC.C.RestConf)
  35. defer server.Stop()
  36. //全局中间件
  37. server.Use(func(next http.HandlerFunc) http.HandlerFunc {
  38. return func(w http.ResponseWriter, r *http.Request) {
  39. defer func() {
  40. MC.AddMgoLogs(IC.MgoLog, r, IC.C.MgoLogsName, IC.ExcludeUrl, IC.C.MgoLogsCount)
  41. }()
  42. next.ServeHTTP(w, r)
  43. }
  44. })
  45. handler.RegisterHandlers(server, ctx)
  46. //日志记录
  47. logx.SetWriter(logrusx.NewLogrusWriter())
  48. fmt.Printf("Starting server at %s:%d...\n", IC.C.Host, IC.C.Port)
  49. server.Start()
  50. quit := make(chan os.Signal, 1)
  51. signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
  52. <-quit
  53. closeNotify()
  54. }