|
@@ -7,6 +7,7 @@ import (
|
|
|
"bp.jydev.jianyu360.cn/BaseService/gateway/core/proxy/broker/outServer"
|
|
|
"bp.jydev.jianyu360.cn/BaseService/gateway/core/proxy/middleware"
|
|
|
"bp.jydev.jianyu360.cn/BaseService/gateway/core/proxy/proxyClient"
|
|
|
+ "bp.jydev.jianyu360.cn/BaseService/gateway/core/proxy/vars"
|
|
|
"bp.jydev.jianyu360.cn/BaseService/gateway/core/router"
|
|
|
"fmt"
|
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
@@ -17,7 +18,6 @@ import (
|
|
|
"net/url"
|
|
|
)
|
|
|
|
|
|
-var bManager = broker.InitBroker()
|
|
|
var routerManager *router.Manager
|
|
|
|
|
|
const errTryTime = 10 //错误尝试
|
|
@@ -27,7 +27,7 @@ func InitGateWayServer() *ghttp.Server {
|
|
|
initCtx := gctx.New()
|
|
|
//创建节点,并持续观察节点变化
|
|
|
watchNode := node.NewNode(gcfg.Instance().MustGet(initCtx, "system.etcdListen", nil).Strings()...)
|
|
|
- go watchNode.NewWatcher(initCtx, bManager)
|
|
|
+ go watchNode.NewWatcher(initCtx, vars.BManager)
|
|
|
|
|
|
//初始化可访问路由
|
|
|
var err error
|
|
@@ -39,7 +39,7 @@ func InitGateWayServer() *ghttp.Server {
|
|
|
sussBiServer := outServer.InitSussBi(gcfg.Instance().MustGet(initCtx, "outServer.sussbi.addr", nil).String(),
|
|
|
gcfg.Instance().MustGet(initCtx, "outServer.sussbi.user", nil).String(),
|
|
|
gcfg.Instance().MustGet(initCtx, "outServer.sussbi.password", nil).String())
|
|
|
- bManager.RegisterOutServer(sussBiServer.Url, sussBiServer)
|
|
|
+ vars.BManager.RegisterOutServer(sussBiServer.Url, sussBiServer)
|
|
|
|
|
|
gateWayServer := g.Server()
|
|
|
//关闭系统自带请求日志
|
|
@@ -78,11 +78,11 @@ var proxyHandler = func(r *ghttp.Request) {
|
|
|
var changeFunc func(resp *http.Response) error
|
|
|
if gCtx.RouterRule.IsOutServer {
|
|
|
//外部服务直接获取
|
|
|
- proxyAddr, err = bManager.GetOutSeverAutoLogin(gCtx.RouterRule.MiddleCode, r)
|
|
|
+ proxyAddr, err = vars.BManager.GetOutSeverAutoLogin(gCtx.RouterRule.MiddleCode, r)
|
|
|
changeFunc = broker.UnLoginSetErr //当未登录时,通过处罚异常尝试重新加载
|
|
|
} else {
|
|
|
// 从etcd注册的地址,根据负载规则获取服务地址
|
|
|
- proxyAddr, err = bManager.GetServerAddr(gCtx.RouterRule.MiddleCode, r.GetClientIp())
|
|
|
+ proxyAddr, err = vars.BManager.GetServerAddr(gCtx.RouterRule.MiddleCode, r.GetClientIp())
|
|
|
}
|
|
|
if err != nil {
|
|
|
r.SetError(err)
|
|
@@ -104,13 +104,12 @@ var proxyHandler = func(r *ghttp.Request) {
|
|
|
}
|
|
|
g.Log().Error(r.Context(), "ErrorHandler ", err)
|
|
|
}
|
|
|
-
|
|
|
// 代理请求
|
|
|
proxyClient.CreateCustomProxyClient(proxyAddr, errHandel, changeFunc).ServeHTTP(r.Response.ResponseWriter, r.Request)
|
|
|
|
|
|
if gCtx.RouterRule.IsOutServer { //检测外部服务登录状态是否过期
|
|
|
- if bManager.CheckOutSeverLoginOut(gCtx.RouterRule.MiddleCode, r) || hasErr {
|
|
|
- if err := bManager.OutSeverLoginIn(gCtx.RouterRule.MiddleCode); err != nil {
|
|
|
+ if vars.BManager.CheckOutSeverLoginOut(gCtx.RouterRule.MiddleCode, r) || hasErr {
|
|
|
+ if err := vars.BManager.OutSeverLoginIn(gCtx.RouterRule.MiddleCode); err != nil {
|
|
|
g.Log().Errorf(r.GetCtx(), "%s 外部服务自动登录异常 %v \n", gCtx.RouterRule.MiddleCode, err)
|
|
|
}
|
|
|
}
|