initconfig.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package common
  2. import (
  3. "app.yhyue.com/moapp/jypkg/middleground"
  4. "context"
  5. "flag"
  6. "fmt"
  7. "log"
  8. "time"
  9. . "app.yhyue.com/moapp/jybase/es"
  10. "app.yhyue.com/moapp/jybase/mongodb"
  11. "app.yhyue.com/moapp/jybase/mysql"
  12. "app.yhyue.com/moapp/jybase/redis"
  13. "bp.jydev.jianyu360.cn/CRM/networkManage/api/internal/config"
  14. "bp.jydev.jianyu360.cn/CRM/networkManage/entity"
  15. "github.com/ClickHouse/clickhouse-go/v2"
  16. "github.com/ClickHouse/clickhouse-go/v2/lib/driver"
  17. "github.com/zeromicro/go-zero/core/conf"
  18. "github.com/zeromicro/go-zero/core/logx"
  19. )
  20. var configFile = flag.String("fs", "etc/networkmanage.yaml", "the config file")
  21. var C config.Config
  22. var logFile = flag.String("lf", "etc/logs.yaml", "the config file")
  23. var logc entity.Logc
  24. var dbFile = flag.String("df", "etc/db.yaml", "the db file")
  25. var DB config.Db
  26. var (
  27. MgoBidding mongodb.MongodbSim
  28. BaseMysql *mysql.Mysql
  29. CrmMysql *mysql.Mysql
  30. JianyuMysql *mysql.Mysql
  31. Mgo mongodb.MongodbSim
  32. ClickhouseConn driver.Conn
  33. Middleground *middleground.Middleground
  34. )
  35. func InitConf() {
  36. conf.MustLoad(*configFile, &C)
  37. log.Println("初始化配置") //
  38. //初始化日志信息
  39. conf.MustLoad(*logFile, &logc)
  40. if len(logc.Level) > 0 {
  41. for _, v := range logc.Level {
  42. logx.MustSetup(logx.LogConf{
  43. Mode: logc.Mode,
  44. Path: logc.Path,
  45. Level: v,
  46. KeepDays: logc.KeepDays,
  47. })
  48. logx.Info(v, "--日志记录")
  49. }
  50. }
  51. conf.MustLoad(*dbFile, &DB)
  52. if DB.Mysql.BaseService.Address != "" {
  53. log.Println("--初始化 base mysql--")
  54. BaseMysql = &mysql.Mysql{
  55. Address: DB.Mysql.BaseService.Address,
  56. UserName: DB.Mysql.BaseService.UserName,
  57. PassWord: DB.Mysql.BaseService.Password,
  58. DBName: DB.Mysql.BaseService.DbName,
  59. MaxOpenConns: DB.Mysql.BaseService.MaxOpenConns,
  60. MaxIdleConns: DB.Mysql.BaseService.MaxIdleConns,
  61. }
  62. BaseMysql.Init()
  63. }
  64. if DB.Mysql.CrmService.Address != "" {
  65. log.Println("--初始化 crm mysql--")
  66. CrmMysql = &mysql.Mysql{
  67. Address: DB.Mysql.CrmService.Address,
  68. UserName: DB.Mysql.CrmService.UserName,
  69. PassWord: DB.Mysql.CrmService.Password,
  70. DBName: DB.Mysql.CrmService.DbName,
  71. MaxOpenConns: DB.Mysql.CrmService.MaxOpenConns,
  72. MaxIdleConns: DB.Mysql.CrmService.MaxIdleConns,
  73. }
  74. CrmMysql.Init()
  75. }
  76. if DB.Mysql.Jianyu.Address != "" {
  77. log.Println("--初始化 Jianyu mysql--")
  78. JianyuMysql = &mysql.Mysql{
  79. Address: DB.Mysql.Jianyu.Address,
  80. UserName: DB.Mysql.Jianyu.UserName,
  81. PassWord: DB.Mysql.Jianyu.Password,
  82. DBName: DB.Mysql.Jianyu.DbName,
  83. MaxOpenConns: DB.Mysql.Jianyu.MaxOpenConns,
  84. MaxIdleConns: DB.Mysql.Jianyu.MaxIdleConns,
  85. }
  86. JianyuMysql.Init()
  87. }
  88. if DB.Mongo.Main.Address != "" {
  89. logx.Info("--初始化 mongodb--")
  90. Mgo = mongodb.MongodbSim{
  91. MongodbAddr: DB.Mongo.Main.Address,
  92. Size: DB.Mongo.Main.Size,
  93. DbName: DB.Mongo.Main.DbName,
  94. }
  95. Mgo.InitPool()
  96. }
  97. if DB.Mongo.Bidding.Address != "" {
  98. logx.Info("--初始化 mongodb Bidding --")
  99. MgoBidding = mongodb.MongodbSim{
  100. MongodbAddr: DB.Mongo.Bidding.Address,
  101. Size: DB.Mongo.Bidding.Size,
  102. DbName: DB.Mongo.Bidding.DbName,
  103. Password: DB.Mongo.Bidding.Password,
  104. UserName: DB.Mongo.Bidding.UserName,
  105. }
  106. MgoBidding.InitPool()
  107. }
  108. //初始化 elasticsearch
  109. if DB.Es.Addr != "" {
  110. log.Println("--初始化 elasticsearch--")
  111. NewEs(DB.Es.Version, DB.Es.Addr, DB.Es.Size, DB.Es.UserName, DB.Es.Password)
  112. }
  113. redis.InitRedis(DB.Redis)
  114. ConnectClickhouse(DB.Clickhouse)
  115. Middleground = middleground.NewMiddleground(C.Hosts).
  116. RegPowerCheckCenter(C.PowerCheckCenterKey)
  117. }
  118. func ConnectClickhouse(cHouseConfig *config.CHouseConfig) error {
  119. var (
  120. ctx = context.Background()
  121. err error
  122. )
  123. ClickhouseConn, err = clickhouse.Open(&clickhouse.Options{
  124. Addr: []string{cHouseConfig.Addr},
  125. DialTimeout: 10 * time.Second,
  126. MaxIdleConns: cHouseConfig.MaxIdleConns,
  127. MaxOpenConns: cHouseConfig.MaxOpenConns,
  128. Auth: clickhouse.Auth{
  129. Database: cHouseConfig.DbName,
  130. Username: cHouseConfig.UserName,
  131. Password: cHouseConfig.Password,
  132. },
  133. Debugf: func(format string, v ...interface{}) {
  134. fmt.Printf(format, v)
  135. },
  136. })
  137. if err != nil {
  138. return err
  139. }
  140. if err := ClickhouseConn.Ping(ctx); err != nil {
  141. if exception, ok := err.(*clickhouse.Exception); ok {
  142. fmt.Printf("Exception [%d] %s \n%s\n", exception.Code, exception.Message, exception.StackTrace)
  143. }
  144. return err
  145. }
  146. return nil
  147. }