浏览代码

代码提交

wangkaiyue 3 年之前
父节点
当前提交
a9c0161ef9
共有 5 个文件被更改,包括 29 次插入47 次删除
  1. 2 1
      common/gatecode/errcode.go
  2. 14 13
      common/gatecode/errcode_string.go
  3. 2 26
      core/node/hellowrold/main.go
  4. 5 6
      core/proxy/proxyClient.go
  5. 6 1
      core/proxy/proxyServer.go

+ 2 - 1
common/gatecode/errcode.go

@@ -24,10 +24,11 @@ const (
 
 	// GATEWAY_ERR_NIL 代理网关错误定义
 	GATEWAY_ERR_NIL                ErrCode = 2000 + iota // gateway ok
-	GATEWAY_MODULE_UNDEFINED                             // 未找到服务
+	GATEWAY_MODULE_UNDEFINED                             // 无可用服务
 	GATEWAY_ROUTER_NOTFIND                               // 未注册路由地址
 	GATEWAY_ROUTER_UPHOLD                                // 接口维护中
 	GATEWAY_REGISTED_URL_ERR                             // 服务地址异常
+	GATEWAY_PROXY_ERR                                    // 服务异常
 	GATEWAY_RPC_USERCENTER_ERR                           // 用户中心服务异常
 	GATEWAY_RPC_RESOURCECENTER_ERR                       // 资源中心服务异常
 

+ 14 - 13
common/gatecode/errcode_string.go

@@ -26,24 +26,25 @@ func _() {
 	_ = x[GATEWAY_ROUTER_NOTFIND-2015]
 	_ = x[GATEWAY_ROUTER_UPHOLD-2016]
 	_ = x[GATEWAY_REGISTED_URL_ERR-2017]
-	_ = x[GATEWAY_RPC_USERCENTER_ERR-2018]
-	_ = x[GATEWAY_RPC_RESOURCECENTER_ERR-2019]
-	_ = x[SERVER_ERR_NIL-3020]
-	_ = x[SERVER_DETAIL_TIMEOUT-3021]
-	_ = x[OTHER_ERR_NIL-4022]
-	_ = x[OTHER_ERR_UNDEFINED-4023]
+	_ = x[GATEWAY_PROXY_ERR-2018]
+	_ = x[GATEWAY_RPC_USERCENTER_ERR-2019]
+	_ = x[GATEWAY_RPC_RESOURCECENTER_ERR-2020]
+	_ = x[SERVER_ERR_NIL-3021]
+	_ = x[SERVER_DETAIL_TIMEOUT-3022]
+	_ = x[OTHER_ERR_NIL-4023]
+	_ = x[OTHER_ERR_UNDEFINED-4024]
 }
 
 const (
 	_ErrCode_name_0 = "global OK无用户身份无选择企业没有权限正在开发中企业账户已被冻结企业未认证企业认证未通过企业认证已过期权限校验失败权益已过期权益余额不足没有权限"
-	_ErrCode_name_1 = "gateway ok未找到服务未注册路由地址接口维护中服务地址异常用户中心服务异常资源中心服务异常"
+	_ErrCode_name_1 = "gateway ok无可用服务未注册路由地址接口维护中服务地址异常服务异常用户中心服务异常资源中心服务异常"
 	_ErrCode_name_2 = "server ok接口超时"
 	_ErrCode_name_3 = "server ok未知异常"
 )
 
 var (
 	_ErrCode_index_0 = [...]uint8{0, 9, 24, 39, 51, 66, 90, 105, 126, 147, 165, 180, 198, 210}
-	_ErrCode_index_1 = [...]uint8{0, 10, 25, 46, 61, 79, 103, 127}
+	_ErrCode_index_1 = [...]uint8{0, 10, 25, 46, 61, 79, 91, 115, 139}
 	_ErrCode_index_2 = [...]uint8{0, 9, 21}
 	_ErrCode_index_3 = [...]uint8{0, 9, 21}
 )
@@ -53,14 +54,14 @@ func (i ErrCode) String() string {
 	case 1000 <= i && i <= 1012:
 		i -= 1000
 		return _ErrCode_name_0[_ErrCode_index_0[i]:_ErrCode_index_0[i+1]]
-	case 2013 <= i && i <= 2019:
+	case 2013 <= i && i <= 2020:
 		i -= 2013
 		return _ErrCode_name_1[_ErrCode_index_1[i]:_ErrCode_index_1[i+1]]
-	case 3020 <= i && i <= 3021:
-		i -= 3020
+	case 3021 <= i && i <= 3022:
+		i -= 3021
 		return _ErrCode_name_2[_ErrCode_index_2[i]:_ErrCode_index_2[i+1]]
-	case 4022 <= i && i <= 4023:
-		i -= 4022
+	case 4023 <= i && i <= 4024:
+		i -= 4023
 		return _ErrCode_name_3[_ErrCode_index_3[i]:_ErrCode_index_3[i+1]]
 	default:
 		return "ErrCode(" + strconv.FormatInt(int64(i), 10) + ")"

+ 2 - 26
core/node/hellowrold/main.go

@@ -5,19 +5,17 @@ import (
 	"gateway/core/node"
 	"github.com/gogf/gf/v2/frame/g"
 	"github.com/gogf/gf/v2/net/ghttp"
-	"github.com/gogf/gf/v2/os/gproc"
 	"os"
 	"os/signal"
 	"syscall"
-	"time"
 )
 
-func main111() {
+func main() {
 	//node.NewNode().Register("usermodule", "8888", "http://127.0.0.1")
 
 	var serverCode string = "gatewayDemo"
 	var serverPort int = 8099
-	closeNotify, err := node.NewNode().Register(serverCode, fmt.Sprintf("%d", serverPort))
+	closeNotify, err := node.NewNode().Register(serverCode, fmt.Sprintf("%d", 8098))
 	if err != nil {
 		panic(err)
 	}
@@ -47,25 +45,3 @@ func main111() {
 	<-quit
 	closeNotify()
 }
-
-func main() {
-	s := g.Server()
-	gc := ghttp.NewConfig()
-	gc.Graceful = true
-	gc.GracefulTimeout = 20
-	s.SetConfig(gc)
-	s.BindHandler("/", func(r *ghttp.Request) {
-		r.Response.Writeln("哈喽!")
-	})
-	s.BindHandler("/pid", func(r *ghttp.Request) {
-		r.Response.Writeln(gproc.Pid())
-	})
-	s.BindHandler("/sleep", func(r *ghttp.Request) {
-		r.Response.Writeln(gproc.Pid())
-		time.Sleep(10 * time.Second)
-		r.Response.Writeln(gproc.Pid())
-	})
-	s.EnableAdmin("/jyGateway/admin/api")
-	s.SetPort(8199)
-	s.Run()
-}

+ 5 - 6
core/proxy/proxyClient.go

@@ -1,7 +1,6 @@
 package proxy
 
 import (
-	"gateway/core/logs"
 	"net"
 	"net/http"
 	"net/http/httputil"
@@ -10,7 +9,7 @@ import (
 	"time"
 )
 
-func CreateCustomProxyClient(target *url.URL) *httputil.ReverseProxy {
+func CreateCustomProxyClient(target *url.URL, errFunc func(http.ResponseWriter, *http.Request, error)) *httputil.ReverseProxy {
 	director := func(req *http.Request) {
 		targetQuery := target.RawQuery
 		req.URL.Scheme = target.Scheme
@@ -43,10 +42,10 @@ func CreateCustomProxyClient(target *url.URL) *httputil.ReverseProxy {
 	}
 
 	//异常处理
-	errFunc := func(w http.ResponseWriter, r *http.Request, err error) {
-		http.Error(w, "proxy error:", 500)
-		logs.GInfo.Error(r.Context(), err.Error())
-	}
+	//errFunc := func(w http.ResponseWriter, r *http.Request, err error) {
+	//	http.Error(w, "proxy error:", 500)
+	//	logs.GInfo.Error(r.Context(), err.Error())
+	//}
 
 	reverseProxy := &httputil.ReverseProxy{
 		Director:  director,

+ 6 - 1
core/proxy/proxyServer.go

@@ -1,6 +1,7 @@
 package proxy
 
 import (
+	"fmt"
 	. "gateway/common/gatecode"
 	"gateway/core/logs"
 	"gateway/core/node"
@@ -11,6 +12,7 @@ import (
 	"github.com/gogf/gf/v2/net/ghttp"
 	"github.com/gogf/gf/v2/os/gcfg"
 	"github.com/gogf/gf/v2/os/gctx"
+	"net/http"
 	"net/url"
 )
 
@@ -72,5 +74,8 @@ var proxyHandler = func(r *ghttp.Request) {
 		// WillDo:后续异常节点冻结
 		return
 	}
-	CreateCustomProxyClient(proxyUrl).ServeHTTP(r.Response.ResponseWriter, r.Request)
+	errHandel := func(hw http.ResponseWriter, hr *http.Request, err error) {
+		r.SetError(NewErrorWithCode(GATEWAY_PROXY_ERR, fmt.Sprintf("代理异常:%s err:%v \n", gCtx.ServerAddr, err.Error())))
+	}
+	CreateCustomProxyClient(proxyUrl, errHandel).ServeHTTP(r.Response.ResponseWriter, r.Request)
 }