initconfig.go 4.2 KB

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