initconfig.go 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  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. "github.com/zeromicro/go-zero/zrpc"
  24. )
  25. var configFile = flag.String("fs", "etc/crmapplication.yaml", "the config file")
  26. var C config.Config
  27. var logFile = flag.String("lf", "etc/logs.yaml", "the config file")
  28. var logc entity.Logc
  29. var dbFile = flag.String("df", "etc/db.yaml", "the db file")
  30. var DB config.Db
  31. var pushFile = flag.String("pf", "etc/push.yaml", "the push file")
  32. var Push config.Push
  33. var (
  34. MgoBidding mongodb.MongodbSim
  35. MgoEnt mongodb.MongodbSim
  36. MainMysql *mysql.Mysql
  37. BaseMysql *mysql.Mysql
  38. CrmMysql *mysql.Mysql
  39. Mgo mongodb.MongodbSim
  40. UserCenterRpc usercenter.UserCenter
  41. FileCenterRpc filecenter.FileCenter
  42. BaseCenterRpc basecenter.BaseCenter
  43. SocialPlatformRpc social.Social
  44. MgoProject mongodb.MongodbSim
  45. NiJian *mysql.Mysql
  46. Middleground *middleground.Middleground
  47. ClickhouseConn driver.Conn
  48. )
  49. func InitConf() {
  50. conf.MustLoad(*configFile, &C)
  51. log.Println("初始化配置") //
  52. //初始化日志信息
  53. conf.MustLoad(*logFile, &logc)
  54. if len(logc.Level) > 0 {
  55. for _, v := range logc.Level {
  56. logx.MustSetup(logx.LogConf{
  57. Mode: logc.Mode,
  58. Path: logc.Path,
  59. Level: v,
  60. KeepDays: logc.KeepDays,
  61. })
  62. logx.Info(v, "--日志记录")
  63. }
  64. }
  65. conf.MustLoad(*dbFile, &DB)
  66. //初始化mysql
  67. if DB.Mysql.Main.Address != "" {
  68. log.Println("--初始化 main mysql--")
  69. MainMysql = &mysql.Mysql{
  70. Address: DB.Mysql.Main.Address,
  71. UserName: DB.Mysql.Main.UserName,
  72. PassWord: DB.Mysql.Main.Password,
  73. DBName: DB.Mysql.Main.DbName,
  74. MaxOpenConns: DB.Mysql.Main.MaxOpenConns,
  75. MaxIdleConns: DB.Mysql.Main.MaxIdleConns,
  76. }
  77. MainMysql.Init()
  78. }
  79. if DB.Mysql.BaseService.Address != "" {
  80. log.Println("--初始化 base mysql--")
  81. BaseMysql = &mysql.Mysql{
  82. Address: DB.Mysql.BaseService.Address,
  83. UserName: DB.Mysql.BaseService.UserName,
  84. PassWord: DB.Mysql.BaseService.Password,
  85. DBName: DB.Mysql.BaseService.DbName,
  86. MaxOpenConns: DB.Mysql.BaseService.MaxOpenConns,
  87. MaxIdleConns: DB.Mysql.BaseService.MaxIdleConns,
  88. }
  89. BaseMysql.Init()
  90. }
  91. if DB.Mysql.CrmService.Address != "" {
  92. log.Println("--初始化 crm mysql--")
  93. CrmMysql = &mysql.Mysql{
  94. Address: DB.Mysql.CrmService.Address,
  95. UserName: DB.Mysql.CrmService.UserName,
  96. PassWord: DB.Mysql.CrmService.Password,
  97. DBName: DB.Mysql.CrmService.DbName,
  98. MaxOpenConns: DB.Mysql.CrmService.MaxOpenConns,
  99. MaxIdleConns: DB.Mysql.CrmService.MaxIdleConns,
  100. }
  101. CrmMysql.Init()
  102. }
  103. if DB.Mysql.NiJian.Address != "" {
  104. log.Println("--初始化 crm mysql--")
  105. NiJian = &mysql.Mysql{
  106. Address: DB.Mysql.NiJian.Address,
  107. UserName: DB.Mysql.NiJian.UserName,
  108. PassWord: DB.Mysql.NiJian.Password,
  109. DBName: DB.Mysql.NiJian.DbName,
  110. MaxOpenConns: DB.Mysql.NiJian.MaxOpenConns,
  111. MaxIdleConns: DB.Mysql.NiJian.MaxIdleConns,
  112. }
  113. NiJian.Init()
  114. }
  115. if DB.Mongo.Main.Address != "" {
  116. logx.Info("--初始化 mongodb--")
  117. Mgo = mongodb.MongodbSim{
  118. MongodbAddr: DB.Mongo.Main.Address,
  119. Size: DB.Mongo.Main.Size,
  120. DbName: DB.Mongo.Main.DbName,
  121. }
  122. Mgo.InitPool()
  123. }
  124. if DB.Mongo.Bidding.Address != "" {
  125. logx.Info("--初始化 mongodb Bidding --")
  126. MgoBidding = mongodb.MongodbSim{
  127. MongodbAddr: DB.Mongo.Bidding.Address,
  128. Size: DB.Mongo.Bidding.Size,
  129. DbName: DB.Mongo.Bidding.DbName,
  130. Password: DB.Mongo.Bidding.Password,
  131. UserName: DB.Mongo.Bidding.UserName,
  132. }
  133. MgoBidding.InitPool()
  134. }
  135. if DB.Mongo.Ent.Address != "" {
  136. logx.Info("--初始化 mongodb ent --")
  137. MgoEnt = mongodb.MongodbSim{
  138. MongodbAddr: DB.Mongo.Ent.Address,
  139. Size: DB.Mongo.Ent.Size,
  140. DbName: DB.Mongo.Ent.DbName,
  141. Password: DB.Mongo.Ent.Password,
  142. UserName: DB.Mongo.Ent.UserName,
  143. }
  144. MgoEnt.InitPool()
  145. }
  146. if DB.Mongo.Project.Address != "" {
  147. logx.Info("--初始化 mongodb ent --")
  148. MgoProject = mongodb.MongodbSim{
  149. MongodbAddr: DB.Mongo.Project.Address,
  150. Size: DB.Mongo.Project.Size,
  151. DbName: DB.Mongo.Project.DbName,
  152. Password: DB.Mongo.Project.Password,
  153. UserName: DB.Mongo.Project.UserName,
  154. }
  155. MgoProject.InitPool()
  156. }
  157. //初始化 elasticsearch
  158. if DB.Es.Addr != "" {
  159. log.Println("--初始化 elasticsearch--")
  160. NewEs(DB.Es.Version, DB.Es.Addr, DB.Es.Size, DB.Es.UserName, DB.Es.Password)
  161. }
  162. redis.InitRedis(DB.Redis)
  163. UserCenterRpc = usercenter.NewUserCenter(zrpc.MustNewClient(C.UserCenterRpc))
  164. FileCenterRpc = filecenter.NewFileCenter(zrpc.MustNewClient(C.FileCenterRpc))
  165. BaseCenterRpc = basecenter.NewBaseCenter(zrpc.MustNewClient(C.BaseCenterRpc))
  166. SocialPlatformRpc = social.NewSocial(zrpc.MustNewClient(C.SocialPlatformRpc))
  167. Middleground = middleground.NewMiddleground(C.BaseCenterRpc.Etcd.Hosts).
  168. RegResourceCenter(C.ResourceCenterKey)
  169. conf.MustLoad(*pushFile, &Push)
  170. ConnectClickhouse(DB.Clickhouse)
  171. }
  172. func ConnectClickhouse(cHouseConfig *config.CHouseConfig) error {
  173. var (
  174. ctx = context.Background()
  175. err error
  176. )
  177. ClickhouseConn, err = clickhouse.Open(&clickhouse.Options{
  178. Addr: []string{cHouseConfig.Addr},
  179. DialTimeout: 10 * time.Second,
  180. MaxIdleConns: cHouseConfig.MaxIdleConns,
  181. MaxOpenConns: cHouseConfig.MaxOpenConns,
  182. Auth: clickhouse.Auth{
  183. Database: cHouseConfig.DbName,
  184. Username: cHouseConfig.UserName,
  185. Password: cHouseConfig.Password,
  186. },
  187. Debugf: func(format string, v ...interface{}) {
  188. fmt.Printf(format, v)
  189. },
  190. })
  191. if err != nil {
  192. return err
  193. }
  194. if err := ClickhouseConn.Ping(ctx); err != nil {
  195. if exception, ok := err.(*clickhouse.Exception); ok {
  196. fmt.Printf("Exception [%d] %s \n%s\n", exception.Code, exception.Message, exception.StackTrace)
  197. }
  198. return err
  199. }
  200. return nil
  201. }