Browse Source

代码提交

wangkaiyue 3 years ago
parent
commit
11d817491e
6 changed files with 42 additions and 21 deletions
  1. 32 15
      core/node/hellowrold/main.go
  2. 1 1
      core/node/watcher.go
  3. 1 0
      core/proxy/middleware/filterFuncs.go
  4. 2 1
      core/proxy/proxyServer.go
  5. 2 1
      etc/config.yaml
  6. 4 3
      main.go

+ 32 - 15
core/node/hellowrold/main.go

@@ -5,14 +5,14 @@ import (
 	"gateway/core/node"
 	"github.com/gogf/gf/v2/frame/g"
 	"github.com/gogf/gf/v2/net/ghttp"
-	"github.com/gogf/gf/v2/util/guid"
+	"github.com/gogf/gf/v2/os/gproc"
 	"os"
 	"os/signal"
-	"strings"
 	"syscall"
+	"time"
 )
 
-func main() {
+func main111() {
 	//node.NewNode().Register("usermodule", "8888", "http://127.0.0.1")
 
 	var serverCode string = "gatewayDemo"
@@ -25,13 +25,18 @@ func main() {
 	go func() {
 		server := g.Server()
 		server.SetPort(serverPort)
-		server.BindHandler("POST:/gatewayDemo/{page}", func(r *ghttp.Request) {
-			r.Response.Header().Set("deductNum", "6")
-			r.Response.Header().Set("ids", strings.Join(getIdArr(20000), ","))
+		server.BindHandler("/gatewayDemo/{page}", func(r *ghttp.Request) {
+			//r.Response.Header().Set("deductNum", "6")
+			//r.Response.Header().Set("ids", strings.Join(getIdArr(20000), ","))
 			r.Response.Write(map[string]interface{}{
 				"code": 1,
 				"func": r.Get("page"),
-				"body": r.GetBodyString(),
+				"param": map[string]interface{}{
+					"name": r.Get("name").String(),
+					"age":  r.Get("age").Int64(),
+					"eId":  r.Get("entId").Int64(),
+					"uId":  r.Get("userId").String(),
+				},
 			})
 		})
 		server.Run()
@@ -43,12 +48,24 @@ func main() {
 	closeNotify()
 }
 
-func getIdArr(count int) []string {
-	r := make([]string, 0, count)
-	for i := 0; i < count; i++ {
-		r = append(r, guid.S())
-	}
-	//id := primitive.NewObjectID().String()
-	//fmt.Println(id)
-	return r
+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()
 }

+ 1 - 1
core/node/watcher.go

@@ -24,7 +24,7 @@ func (n *Node) NewWatcher(ctx context.Context, resolver Resolver) {
 	for _, value := range registered.Kvs {
 		serverCode, serverAddr := getServerCodeFromKey(string(value.Key))
 		if addRegisteredErr := resolver.AddNode(serverCode, serverAddr); addRegisteredErr != nil {
-			log.Println("NewWatcher 添加已存在节点 %s:%s 异常%v", serverCode, serverAddr, addRegisteredErr)
+			log.Printf("NewWatcher 添加已存在节点 %s:%s 异常%v", serverCode, serverAddr, addRegisteredErr)
 		}
 	}
 	// 持续监听服务变化

+ 1 - 0
core/proxy/middleware/filterFuncs.go

@@ -87,6 +87,7 @@ func getPowerCheck(c int) (userIdCheck bool, entIdCheck bool, funcCodeCheck bool
 
 // infusionIdentity 用户身份注入
 func infusionIdentity(r *ghttp.Request, entId int64, userId string) {
+	//body-json请求方式
 	var newBody map[string]interface{}
 	_ = json.Unmarshal(r.GetBody(), &newBody)
 	newBody["userId"] = userId

+ 2 - 1
core/proxy/proxyServer.go

@@ -43,12 +43,13 @@ func InitGateWayServer() *ghttp.Server {
 		r.Middleware.Next()
 	})
 	gateWayServer.Use(middleware.FilterHandler) //权限过滤
+
 	//注册代理
 	gateWayServer.BindHandler("POST:/*", proxyHandler)
 	return gateWayServer
 }
 
-// proxyHandler 网关代理Handler处理,完成所有校验
+// proxyHandler 网关代理Handler处理,完成所有校验
 var proxyHandler = func(r *ghttp.Request) {
 	if r.GetError() != nil {
 		return

+ 2 - 1
etc/config.yaml

@@ -11,7 +11,8 @@ server:
   clientMaxBodySize: 810241024      # 客户端最大Body上传限制大小,影响文件上传大小(Byte)。默认为8*1024*1024=8MB
   formParsingMemory: 1048576        # 解析表单时的缓冲区大小(Byte),一般不需要配置。默认为1024*1024=1MB
   dumpRouterMap: false              # 是否在Server启动时打印所有的路由列表。默认为true
-  graceful: false                   # 是否开启平滑重启特性,开启时将会在本地增加10000的本地TCP端口用于进程间通信。默认false
+  graceful: true                    # 是否开启平滑重启特性,开启时将会在本地增加10000的本地TCP端口用于进程间通信。默认false
+  gracefulTimeout: 10               # 平滑重启父进程最大存活时间。默认2秒
 
 # 基础服务ETCD配置
 etcd:

+ 4 - 3
main.go

@@ -4,15 +4,16 @@ import (
 	"gateway/common/db"
 	"gateway/core/logs"
 	"gateway/core/proxy"
+	"gateway/core/proxy/rpc"
 	"github.com/gogf/gf/v2/frame/g"
 	"github.com/gogf/gf/v2/os/gcfg"
 )
 
 func init() {
 	g.Cfg().GetAdapter().(*gcfg.AdapterFile).SetFileName("./etc/config.yaml")
-	logs.InitLogs() // 初始化日志组件
-	//rpc.InitBaseServerRpc() // 初始化rpc服务连接
-	db.InitDatabases() // 初始化数据库
+	logs.InitLogs()         // 初始化日志组件
+	rpc.InitBaseServerRpc() // 初始化rpc服务连接
+	db.InitDatabases()      // 初始化数据库
 }
 
 func main() {