代码拉取完成,页面将自动刷新
同步操作将从 DiDi-opensource/GateKeeper 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package main
import (
"github.com/didi/gatekeeper/dashboard_router"
"github.com/didi/gatekeeper/golang_common/lib"
"github.com/didi/gatekeeper/golang_common/zerolog/log"
"github.com/didi/gatekeeper/grpc_proxy_router"
"github.com/didi/gatekeeper/handler"
"github.com/didi/gatekeeper/http_proxy_router"
"github.com/didi/gatekeeper/tcp_proxy_router"
_ "net/http/pprof"
"os"
"os/signal"
"syscall"
)
func main() {
if err := lib.CmdExecute(); err != nil || lib.GetCmdPanelType() == "" {
os.Exit(1)
}
if lib.GetCmdPanelType() == "proxy" {
startProxy()
}
if lib.GetCmdPanelType() == "control" {
startControl()
}
if lib.GetCmdPanelType() == "both" {
startBoth()
}
}
func startControl() {
log.Info().Msg(lib.Purple("start controller application"))
lib.InitConf(lib.GetCmdConfPath())
defer lib.DestroyConf()
handler.ServiceManagerHandler.LoadAndWatch()
dashboard_router.HttpServerRun()
quit := make(chan os.Signal)
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
<-quit
dashboard_router.HttpServerStop()
}
func startProxy() {
log.Info().Msg(lib.Purple("start proxy application"))
lib.InitConf(lib.GetCmdConfPath())
defer lib.DestroyConf()
handler.ServiceManagerHandler.LoadAndWatch()
handler.AppManagerHandler.LoadAndWatch()
go func() {
http_proxy_router.HttpServerRun()
}()
go func() {
http_proxy_router.HttpsServerRun()
}()
go func() {
tcp_proxy_router.TcpManagerHandler.TcpServerRun()
}()
go func() {
grpc_proxy_router.GrpcManagerHandler.GrpcServerRun()
}()
quit := make(chan os.Signal)
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
<-quit
tcp_proxy_router.TcpManagerHandler.TcpServerStop()
grpc_proxy_router.GrpcManagerHandler.GrpcServerStop()
http_proxy_router.HttpServerStop()
http_proxy_router.HttpsServerStop()
}
func startBoth() {
log.Info().Msg(lib.Purple("start proxy application"))
lib.InitConf(lib.GetCmdConfPath())
defer lib.DestroyConf()
handler.ServiceManagerHandler.LoadAndWatch()
handler.AppManagerHandler.LoadAndWatch()
dashboard_router.HttpServerRun()
go func() {
http_proxy_router.HttpServerRun()
}()
go func() {
http_proxy_router.HttpsServerRun()
}()
go func() {
tcp_proxy_router.TcpManagerHandler.TcpServerRun()
}()
go func() {
grpc_proxy_router.GrpcManagerHandler.GrpcServerRun()
}()
quit := make(chan os.Signal)
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
<-quit
dashboard_router.HttpServerStop()
tcp_proxy_router.TcpManagerHandler.TcpServerStop()
grpc_proxy_router.GrpcManagerHandler.GrpcServerStop()
http_proxy_router.HttpServerStop()
http_proxy_router.HttpsServerStop()
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。