initconfig.go 6.4 KB

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