db.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. /*
  2. 初始数据库应用
  3. */
  4. package init
  5. import (
  6. "fmt"
  7. "strings"
  8. elastic "app.yhyue.com/moapp/jybase/es"
  9. P "app.yhyue.com/moapp/jybase/mapping"
  10. "app.yhyue.com/moapp/jypkg/compatible"
  11. "app.yhyue.com/moapp/jypkg/middleground"
  12. "github.com/zeromicro/go-zero/core/logx"
  13. "jyBXSubscribe/entity"
  14. "app.yhyue.com/moapp/jybase/mongodb"
  15. "app.yhyue.com/moapp/jybase/mysql"
  16. "app.yhyue.com/moapp/jybase/redis"
  17. )
  18. var (
  19. MainMysql *mysql.Mysql
  20. BaseServiceMysql *mysql.Mysql
  21. Mgo mongodb.MongodbSim
  22. MgoBidding mongodb.MongodbSim
  23. GlobalCommonData *mysql.Mysql
  24. MgoLog mongodb.MongodbSim
  25. CkJy *mysql.Mysql
  26. )
  27. var Middleground *middleground.Middleground
  28. var Compatible *compatible.Compatible
  29. func MongoDBInit(em *entity.Mongo) {
  30. //初始化 mongodb
  31. if em.Main.Address != "" {
  32. logx.Info("--初始化 mongodb--")
  33. Mgo = mongodb.MongodbSim{
  34. MongodbAddr: em.Main.Address,
  35. Size: em.Main.Size,
  36. DbName: em.Main.DbName,
  37. }
  38. Mgo.InitPool()
  39. }
  40. //
  41. if em.Bidding.Address != "" {
  42. logx.Info("--初始化 mongodb bidding--")
  43. MgoBidding = mongodb.MongodbSim{
  44. MongodbAddr: em.Bidding.Address,
  45. Size: em.Bidding.Size,
  46. DbName: em.Bidding.DbName,
  47. UserName: em.Bidding.UserName,
  48. Password: em.Bidding.Password,
  49. }
  50. MgoBidding.InitPool()
  51. }
  52. //
  53. if em.MgoLog.Address != "" {
  54. logx.Info("--初始化 mongodb log--")
  55. MgoLog = mongodb.MongodbSim{
  56. MongodbAddr: em.MgoLog.Address,
  57. Size: em.MgoLog.Size,
  58. DbName: em.MgoLog.DbName,
  59. UserName: em.MgoLog.UserName,
  60. Password: em.MgoLog.Password,
  61. }
  62. MgoLog.InitPool()
  63. }
  64. }
  65. func MysqlInit(mm *entity.Mysql) {
  66. //初始化 mysql-main
  67. if mm.Main.Address != "" {
  68. logx.Info("--初始化 mysql--")
  69. MainMysql = &mysql.Mysql{
  70. Address: mm.Main.Address,
  71. UserName: mm.Main.UserName,
  72. PassWord: mm.Main.Password,
  73. DBName: mm.Main.DbName,
  74. MaxOpenConns: mm.Main.MaxOpenConns,
  75. MaxIdleConns: mm.Main.MaxIdleConns,
  76. }
  77. MainMysql.Init()
  78. }
  79. //初始化 mysql-BaseService
  80. if mm.BaseService.Address != "" {
  81. logx.Info("--初始化 推送 mysql--")
  82. BaseServiceMysql = &mysql.Mysql{
  83. Address: mm.BaseService.Address,
  84. UserName: mm.BaseService.UserName,
  85. PassWord: mm.BaseService.Password,
  86. DBName: mm.BaseService.DbName,
  87. MaxOpenConns: mm.BaseService.MaxOpenConns,
  88. MaxIdleConns: mm.BaseService.MaxIdleConns,
  89. }
  90. BaseServiceMysql.Init()
  91. }
  92. //初始化 mysql-GlobalCommonData
  93. if mm.GlobalCommonData.Address != "" {
  94. logx.Info("--初始化 推送 mysql--")
  95. GlobalCommonData = &mysql.Mysql{
  96. Address: mm.GlobalCommonData.Address,
  97. UserName: mm.GlobalCommonData.UserName,
  98. PassWord: mm.GlobalCommonData.Password,
  99. DBName: mm.GlobalCommonData.DbName,
  100. MaxOpenConns: mm.GlobalCommonData.MaxOpenConns,
  101. MaxIdleConns: mm.GlobalCommonData.MaxIdleConns,
  102. }
  103. GlobalCommonData.Init()
  104. }
  105. if mm.JyCk.Address != "" {
  106. logx.Info("--初始化 jy clickhouse--")
  107. CkJy = mysql.NewInit(mysql.CLICKHOUSE, fmt.Sprintf("clickhouse://%s:%s@%s/%s", mm.JyCk.UserName, mm.JyCk.Password, mm.JyCk.Address, mm.JyCk.DbName),
  108. mm.JyCk.MaxOpenConns, mm.JyCk.MaxIdleConns)
  109. }
  110. P.BidCodeMapping.Init(BaseServiceMysql)
  111. }
  112. func RedisInit(rm *entity.RedisStuct) {
  113. //初始化 redis
  114. if len(rm.Addr) > 0 {
  115. logx.Info("--初始化 redis--")
  116. redis.InitRedisBySize(strings.Join(rm.Addr, ","), 100, 30, 300)
  117. }
  118. }
  119. func EsInit(es *entity.EsStruct) {
  120. //初始化 elasticsearch
  121. if es.Addr != "" {
  122. logx.Info("--初始化 elasticsearch--")
  123. elastic.NewEs(es.Version, es.Addr, es.Size, es.UserName, es.Password)
  124. }
  125. }
  126. // clickhouse init
  127. func CkInit(ck *entity.Mysql) {
  128. if ck.JyCk.Address != "" {
  129. logx.Info("--初始化 jy clickhouse--")
  130. CkJy = mysql.NewInit(mysql.CLICKHOUSE, fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4", ck.JyCk.UserName, ck.JyCk.Password, ck.JyCk.Address, ck.JyCk.DbName),
  131. ck.JyCk.MaxOpenConns, ck.JyCk.MaxIdleConns)
  132. }
  133. }