initconfig.go 6.5 KB

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