Browse Source

重新规整rpc服务与业务基础组件初始化代码

wanghuidong 4 năm trước cách đây
mục cha
commit
254011c57f

+ 1 - 4
go.sum

@@ -1,5 +1,3 @@
-app.yhyue.com/moapp/jybase v0.0.0-20210311095311-3f0f4dec1f3d h1:Xo2DEB/fMU0N+xDxFHOcLITPYwFYOZ6GeeudjCg2RKU=
-app.yhyue.com/moapp/jybase v0.0.0-20210311095311-3f0f4dec1f3d/go.mod h1:z8Hrrhyj5C7bu4MIH0dmjL43oT/MM7FoR8ubjP4inSo=
 app.yhyue.com/moapp/jybase v0.0.0-20210312055531-9bf805cce8ab h1:e0w9yaAu+xiwtSebZDYa0kog3QptpLK+4iKxRhq9vyE=
 app.yhyue.com/moapp/jybase v0.0.0-20210312055531-9bf805cce8ab/go.mod h1:K2jMm63fzsEtUjGwtww36U2+0ZFUiZu3AdVm2KZvbUI=
 github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
@@ -55,6 +53,7 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7
 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
 github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
+github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
 github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
 github.com/frankban/quicktest v1.7.2/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o=
 github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
@@ -481,8 +480,6 @@ gorm.io/driver/mysql v1.0.3/go.mod h1:twGxftLBlFgNVNakL7F+P/x9oYqoymG3YYT8cAfI9o
 gorm.io/gorm v1.20.4/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw=
 gorm.io/gorm v1.20.8 h1:iToaOdZgjNvlc44NFkxfLa3U9q63qwaxt0FdNCiwOMs=
 gorm.io/gorm v1.20.8/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw=
-gorm.io/gorm v1.21.3 h1:qDFi55ZOsjZTwk5eN+uhAmHi8GysJ/qCTichM/yO7ME=
-gorm.io/gorm v1.21.3/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=

+ 4 - 0
rpc/stdlib/internal/logic/docquerylogic.go

@@ -26,6 +26,10 @@ func NewDocQueryLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DocQuery
 
 func (l *DocQueryLogic) DocQuery(in *stdlib.DocQueryRequest) (*stdlib.DocQueryResponse, error) {
 	// todo: add your logic here and delete this line
+	//调用service示例
+	stdlibService.FindDocumentById(1)
+	//end of service call demo
+
 	pageNum := 0
 	if in.PageNum <= 0 {
 		pageNum = 0

+ 0 - 22
rpc/stdlib/internal/svc/servicecontext.go

@@ -1,37 +1,15 @@
 package svc
 
 import (
-	"log"
-
-	elastic "app.yhyue.com/moapp/jybase/esv7"
-	"app.yhyue.com/moapp/jybase/mysql"
 	"app.yhyue.com/moapp/jydocs/rpc/stdlib/internal/config"
-	"gorm.io/gorm"
 )
 
 type ServiceContext struct {
 	Config config.Config
-	DB     *gorm.DB
 }
 
 func NewServiceContext(c config.Config) *ServiceContext {
-	jyDBConfig := c.JyDocsMysqlDB
-	db := initDB(jyDBConfig.DriverName, jyDBConfig.DataSourceName, jyDBConfig.MaxOpenConn, jyDBConfig.MaxIdleConn)
-	elastic.InitElasticSize(c.EsConfig.Addr, c.EsConfig.Pool)
 	return &ServiceContext{
 		Config: c,
-		DB:     db,
-	}
-}
-
-func initDB(driverName, url string, maxOpenConn, maxIdle int) *gorm.DB {
-	log.Println("----------->【jy_docs】 rpc base init start<--------------")
-	docDB := mysql.GormMysql(url, driverName, maxOpenConn, maxIdle, nil)
-	if docDB != nil {
-		log.Println("----------->【jy_docs】 DB初始化成功!<--------------")
-		return docDB
-	} else {
-		log.Fatalf("【jy_docs】 DB初始化失败...")
-		return nil
 	}
 }

+ 19 - 14
rpc/stdlib/stdlib.go

@@ -1,32 +1,37 @@
 package main
 
 import (
-	"flag"
-	"fmt"
-
 	"app.yhyue.com/moapp/jydocs/rpc/stdlib/internal/config"
 	"app.yhyue.com/moapp/jydocs/rpc/stdlib/internal/server"
 	"app.yhyue.com/moapp/jydocs/rpc/stdlib/internal/svc"
-	"app.yhyue.com/moapp/jydocs/rpc/stdlib/stdlib_pb"
-
+	"app.yhyue.com/moapp/jydocs/rpc/stdlib/stdlib"
+	jyDocsRpcUtil "app.yhyue.com/moapp/jydocs/services/util"
+	"flag"
 	"github.com/tal-tech/go-zero/core/conf"
 	"github.com/tal-tech/go-zero/zrpc"
 	"google.golang.org/grpc"
+	"log"
 )
 
 var configFile = flag.String("f", "etc/stdlib.yaml", "the config file")
 
 func main() {
 	flag.Parse()
-
 	var c config.Config
 	conf.MustLoad(*configFile, &c)
-	ctx := svc.NewServiceContext(c)
-	srv := server.NewStdlibServer(ctx)
-	s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) {
-		stdlib.RegisterStdlibServer(grpcServer, srv)
-	})
-	defer s.Stop()
-	fmt.Printf("Starting rpc server at %s...\n", c.ListenOn)
-	s.Start()
+	if c.JyDocsMysqlDB.DataSourceName != "" && c.EsConfig.Addr != "" {
+		jyDocsRpcUtil.InitDB(c.JyDocsMysqlDB.DataSourceName, c.JyDocsMysqlDB.DriverName, c.JyDocsMysqlDB.MaxOpenConn, c.JyDocsMysqlDB.MaxIdleConn)
+		jyDocsRpcUtil.InitEs(c.EsConfig.Addr, c.EsConfig.Pool)
+		ctx := svc.NewServiceContext(c)
+		srv := server.NewStdlibServer(ctx)
+		s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) {
+			stdlib.RegisterStdlibServer(grpcServer, srv)
+		})
+		defer s.Stop()
+		log.Printf("Starting rpc server at %s...\n", c.ListenOn)
+		s.Start()
+	} else {
+		log.Fatal("【jy_docs】 read config error!")
+	}
+
 }

+ 4 - 3
services/stdlib/docService.go

@@ -1,11 +1,12 @@
 package stdlib
 
 import (
-	"gorm.io/gorm"
+	jyDocsRpcUtil "app.yhyue.com/moapp/jydocs/services/util"
+	"log"
 )
 
-func FindDocumentById(id int, db *gorm.DB) {
-
+func FindDocumentById(id int) {
+	log.Println(jyDocsRpcUtil.GetJyDocsDB().Exec("select * from ").Error)
 }
 
 func FindDocumentsByKeyWords(keyWords string, pageNum int) {

+ 29 - 0
services/util/baseInit.go

@@ -0,0 +1,29 @@
+package util
+
+import (
+	elastic "app.yhyue.com/moapp/jybase/esv7"
+	"app.yhyue.com/moapp/jybase/mysql"
+	"gorm.io/gorm"
+	"log"
+)
+
+var (
+	jyDocsDB *gorm.DB
+)
+
+func InitDB(url, driverName string, maxOpenConn, maxIdle int) {
+	docDB := mysql.GormMysql(url, driverName, maxOpenConn, maxIdle, nil)
+	if docDB != nil {
+		log.Printf("----------->【jy_docs】 DB :[%s] 初始化成功!<--------------", url)
+	} else {
+		log.Fatalf("----------->【jy_docs】 DB初始化失败<--------------")
+	}
+
+}
+func InitEs(addr string, poolSize int) {
+	log.Printf("----------->【jy_docs】 elastic :[%s] init<--------------", addr)
+	elastic.InitElasticSize(addr, poolSize)
+}
+func GetJyDocsDB() *gorm.DB {
+	return jyDocsDB
+}