initconfig.go 4.6 KB

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