consul.go包引用

This commit is contained in:
2025-11-26 11:56:05 +08:00
parent b57c8de47f
commit f2ba4b66b9

View File

@@ -9,7 +9,6 @@ import (
"gitee.com/red-future---jilin-g/common/utils" "gitee.com/red-future---jilin-g/common/utils"
"github.com/gogf/gf/contrib/registry/consul/v2" "github.com/gogf/gf/contrib/registry/consul/v2"
"github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/gclient"
"github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/net/ghttp"
"github.com/gogf/gf/v2/net/gsel" "github.com/gogf/gf/v2/net/gsel"
"github.com/gogf/gf/v2/net/gsvc" "github.com/gogf/gf/v2/net/gsvc"
@@ -33,6 +32,7 @@ type Page struct {
} }
var Httpserver = g.Server() var Httpserver = g.Server()
var Httpclient = g.Client()
func init() { func init() {
//s.Use(common.Cors) //中间件验证 //s.Use(common.Cors) //中间件验证
@@ -42,6 +42,17 @@ func init() {
Httpserver.SetDumpRouterMap(true) //关闭打印路由注册信息 Httpserver.SetDumpRouterMap(true) //关闭打印路由注册信息
Httpserver.BindMiddlewareDefault(ghttp.MiddlewareHandlerResponse, jaeger.NewTracer) //使用默认http返回结构 Httpserver.BindMiddlewareDefault(ghttp.MiddlewareHandlerResponse, jaeger.NewTracer) //使用默认http返回结构
go Httpserver.Run() go Httpserver.Run()
consulCfg, _ := g.Cfg().Get(context.Background(), "consul.address")
consulAddr := consulCfg.String()
registry, err := consul.New(consul.WithAddress(consulAddr))
if err != nil {
panic(err)
}
gsvc.SetRegistry(registry)
gsel.SetBuilder(gsel.NewBuilderRoundRobin())
Httpclient.SetHeader("Authorization", g.RequestFromCtx(context.TODO()).GetHeader("Authorization"))
Httpclient.SetDiscovery(gsvc.GetRegistry())
} }
func RouteRegister(controllers []interface{}) { func RouteRegister(controllers []interface{}) {
re := regexp.MustCompile("[A-Z]") re := regexp.MustCompile("[A-Z]")
@@ -55,30 +66,12 @@ func RouteRegister(controllers []interface{}) {
}) })
} }
} }
func getHttpClient(ctx context.Context) (client *gclient.Client, err error) {
consulCfg, _ := g.Cfg().Get(context.Background(), "consul.address")
consulAddr := consulCfg.String()
registry, err := consul.New(consul.WithAddress(consulAddr))
if err != nil {
return
}
gsvc.SetRegistry(registry)
gsel.SetBuilder(gsel.NewBuilderRoundRobin())
client = g.Client()
client.SetHeader("Authorization", g.RequestFromCtx(ctx).GetHeader("Authorization"))
client.SetDiscovery(gsvc.GetRegistry())
return
}
func doRequest(ctx context.Context, method string, url string, target any, data ...any) (err error) { func doRequest(ctx context.Context, method string, url string, target any, data ...any) (err error) {
err = utils.ValidStructPtr(target) err = utils.ValidStructPtr(target)
if err != nil { if err != nil {
return return
} }
client, err := getHttpClient(ctx) response, err := Httpclient.DoRequest(ctx, method, url, data)
if err != nil {
return
}
response, err := client.DoRequest(ctx, method, url, data)
if err != nil { if err != nil {
return return
} }