initconfig.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  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. Mgo mongodb.MongodbSim
  30. ClickhouseConn driver.Conn
  31. )
  32. func InitConf() {
  33. conf.MustLoad(*configFile, &C)
  34. log.Println("初始化配置") //
  35. //初始化日志信息
  36. conf.MustLoad(*logFile, &logc)
  37. if len(logc.Level) > 0 {
  38. for _, v := range logc.Level {
  39. logx.MustSetup(logx.LogConf{
  40. Mode: logc.Mode,
  41. Path: logc.Path,
  42. Level: v,
  43. KeepDays: logc.KeepDays,
  44. })
  45. logx.Info(v, "--日志记录")
  46. }
  47. }
  48. conf.MustLoad(*dbFile, &DB)
  49. if DB.Mysql.BaseService.Address != "" {
  50. log.Println("--初始化 base mysql--")
  51. BaseMysql = &mysql.Mysql{
  52. Address: DB.Mysql.BaseService.Address,
  53. UserName: DB.Mysql.BaseService.UserName,
  54. PassWord: DB.Mysql.BaseService.Password,
  55. DBName: DB.Mysql.BaseService.DbName,
  56. MaxOpenConns: DB.Mysql.BaseService.MaxOpenConns,
  57. MaxIdleConns: DB.Mysql.BaseService.MaxIdleConns,
  58. }
  59. BaseMysql.Init()
  60. }
  61. if DB.Mysql.CrmService.Address != "" {
  62. log.Println("--初始化 crm mysql--")
  63. CrmMysql = &mysql.Mysql{
  64. Address: DB.Mysql.CrmService.Address,
  65. UserName: DB.Mysql.CrmService.UserName,
  66. PassWord: DB.Mysql.CrmService.Password,
  67. DBName: DB.Mysql.CrmService.DbName,
  68. MaxOpenConns: DB.Mysql.CrmService.MaxOpenConns,
  69. MaxIdleConns: DB.Mysql.CrmService.MaxIdleConns,
  70. }
  71. CrmMysql.Init()
  72. }
  73. if DB.Mongo.Main.Address != "" {
  74. logx.Info("--初始化 mongodb--")
  75. Mgo = mongodb.MongodbSim{
  76. MongodbAddr: DB.Mongo.Main.Address,
  77. Size: DB.Mongo.Main.Size,
  78. DbName: DB.Mongo.Main.DbName,
  79. }
  80. Mgo.InitPool()
  81. }
  82. if DB.Mongo.Bidding.Address != "" {
  83. logx.Info("--初始化 mongodb Bidding --")
  84. MgoBidding = mongodb.MongodbSim{
  85. MongodbAddr: DB.Mongo.Bidding.Address,
  86. Size: DB.Mongo.Bidding.Size,
  87. DbName: DB.Mongo.Bidding.DbName,
  88. Password: DB.Mongo.Bidding.Password,
  89. UserName: DB.Mongo.Bidding.UserName,
  90. }
  91. MgoBidding.InitPool()
  92. }
  93. //初始化 elasticsearch
  94. if DB.Es.Addr != "" {
  95. log.Println("--初始化 elasticsearch--")
  96. NewEs(DB.Es.Version, DB.Es.Addr, DB.Es.Size, DB.Es.UserName, DB.Es.Password)
  97. }
  98. redis.InitRedis(DB.Redis)
  99. ConnectClickhouse(DB.Clickhouse)
  100. }
  101. func ConnectClickhouse(cHouseConfig *config.CHouseConfig) error {
  102. var (
  103. ctx = context.Background()
  104. err error
  105. )
  106. ClickhouseConn, err = clickhouse.Open(&clickhouse.Options{
  107. Addr: []string{cHouseConfig.Addr},
  108. DialTimeout: 10 * time.Second,
  109. MaxIdleConns: cHouseConfig.MaxIdleConns,
  110. MaxOpenConns: cHouseConfig.MaxOpenConns,
  111. Auth: clickhouse.Auth{
  112. Database: cHouseConfig.DbName,
  113. Username: cHouseConfig.UserName,
  114. Password: cHouseConfig.Password,
  115. },
  116. Debugf: func(format string, v ...interface{}) {
  117. fmt.Printf(format, v)
  118. },
  119. })
  120. if err != nil {
  121. return err
  122. }
  123. if err := ClickhouseConn.Ping(ctx); err != nil {
  124. if exception, ok := err.(*clickhouse.Exception); ok {
  125. fmt.Printf("Exception [%d] %s \n%s\n", exception.Code, exception.Message, exception.StackTrace)
  126. }
  127. return err
  128. }
  129. return nil
  130. }