baseInit.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package util
  2. import (
  3. elastic "app.yhyue.com/moapp/jybase/esv7"
  4. "app.yhyue.com/moapp/jybase/mongodb"
  5. "app.yhyue.com/moapp/jybase/mysql"
  6. "app.yhyue.com/moapp/jybase/redis"
  7. "app.yhyue.com/moapp/jyfs/rpc/filesystemclient"
  8. "github.com/zeromicro/go-zero/core/discov"
  9. "github.com/zeromicro/go-zero/zrpc"
  10. "gorm.io/gorm"
  11. "log"
  12. "strings"
  13. )
  14. type MysqlDBConfig struct {
  15. DriverName string
  16. DataSourceName string
  17. MaxOpenConn int
  18. MaxIdleConn int
  19. MaxConnLifeTime int
  20. }
  21. type EsConfig struct {
  22. Addr string
  23. Pool int
  24. UserName string
  25. Password string
  26. }
  27. type RedisConfig struct {
  28. Addr []string
  29. }
  30. type MongoConfig struct {
  31. Main Mongo
  32. Logger Mongo
  33. }
  34. type Mongo struct {
  35. Address string `json:"address"`
  36. Size int `json:"size"`
  37. DbName string `json:"dbName"`
  38. UserName string `json:"userName,optional"`
  39. Password string `json:"password,optional"`
  40. }
  41. var (
  42. jyDocsDB *gorm.DB
  43. FileSystem filesystemclient.FileSystem
  44. mgoLog *mongodb.MongodbSim
  45. mgoMain *mongodb.MongodbSim
  46. )
  47. func InitDB(url, driverName string, maxOpenConn, maxIdle int) {
  48. jyDocsDB = mysql.GormMysql(url, driverName, maxOpenConn, maxIdle, nil)
  49. if jyDocsDB != nil {
  50. log.Printf("----------->【jy_docs】 DB :[%s] 初始化成功!<--------------", url)
  51. } else {
  52. log.Fatalf("----------->【jy_docs】 DB初始化失败<--------------")
  53. }
  54. }
  55. func InitEs(addr string, poolSize int, userName, password string) {
  56. log.Printf("----------->【jy_docs】 elastic :[%s] init<--------------", addr)
  57. elastic.InitElasticSizeByAuth(addr, poolSize, userName, password)
  58. }
  59. func InitOss(etcd discov.EtcdConf) {
  60. client := zrpc.MustNewClient(zrpc.RpcClientConf{
  61. Etcd: etcd,
  62. })
  63. FileSystem = filesystemclient.NewFileSystem(client)
  64. }
  65. func InitRedis(rc RedisConfig) {
  66. //初始化 redis
  67. if len(rc.Addr) > 0 {
  68. log.Println("--初始化 redis--")
  69. redis.InitRedisBySize(strings.Join(rc.Addr, ","), 100, 30, 300)
  70. }
  71. }
  72. func InitMongo(mgo MongoConfig) {
  73. if mgo.Main.Address != "" {
  74. log.Println("--初始化 mongodb main --")
  75. mgoMain = &mongodb.MongodbSim{
  76. MongodbAddr: mgo.Main.Address,
  77. Size: mgo.Main.Size,
  78. DbName: mgo.Main.DbName,
  79. UserName: mgo.Main.UserName,
  80. Password: mgo.Main.Password,
  81. }
  82. mgoMain.InitPool()
  83. }
  84. if mgo.Logger.Address != "" {
  85. log.Println("--初始化 mongodb log--")
  86. mgoLog = &mongodb.MongodbSim{
  87. MongodbAddr: mgo.Logger.Address,
  88. Size: mgo.Logger.Size,
  89. DbName: mgo.Logger.DbName,
  90. UserName: mgo.Logger.UserName,
  91. Password: mgo.Logger.Password,
  92. }
  93. mgoLog.InitPool()
  94. }
  95. }
  96. func GetJyMgoLoggerDB() *mongodb.MongodbSim {
  97. return mgoLog
  98. }
  99. func GetJyMgoMainDB() *mongodb.MongodbSim {
  100. return mgoMain
  101. }
  102. func GetJyDocsDB() *gorm.DB {
  103. return jyDocsDB
  104. }