db.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package public
  2. import (
  3. util "app.yhyue.com/moapp/jybase/common"
  4. elastic "app.yhyue.com/moapp/jybase/es"
  5. m "app.yhyue.com/moapp/jybase/mongodb"
  6. "app.yhyue.com/moapp/jybase/mysql"
  7. "app.yhyue.com/moapp/jybase/redis"
  8. "log"
  9. )
  10. var (
  11. DbConf *dbConf
  12. MainMysql *mysql.Mysql //主程序订单表
  13. UserAnalyseDb *mysql.Mysql //用户分析
  14. MQFW m.MongodbSim
  15. Mgo_Log m.MongodbSim
  16. )
  17. type dbConf struct {
  18. Mongodb struct {
  19. Main *mgoConf
  20. Log *mgoConf
  21. Ent *mgoConf
  22. Qyfw *mgoConf
  23. Bidding *mgoConf
  24. }
  25. Elasticsearch struct {
  26. Main *esConf
  27. }
  28. Redis struct {
  29. Main *redisConf
  30. }
  31. Mysql struct {
  32. Main *mysqlConf //大会员&订单
  33. Active *mysqlConf //活跃用户
  34. }
  35. }
  36. type mgoConf struct {
  37. Address string
  38. Size int
  39. DbName string
  40. ReplSet string
  41. UserName string
  42. Password string
  43. Collection string
  44. Collection_back string
  45. }
  46. type esConf struct {
  47. Version string
  48. Address string
  49. Size int
  50. UserName string
  51. Password string
  52. }
  53. type redisConf struct {
  54. Address string
  55. }
  56. type mysqlConf struct {
  57. DbName string
  58. Address string
  59. UserName string
  60. PassWord string
  61. MaxOpenConns int
  62. MaxIdleConns int
  63. }
  64. func init() {
  65. util.ReadConfig("./db.json", &DbConf)
  66. if DbConf != nil {
  67. if DbConf.Elasticsearch.Main != nil {
  68. elastic.NewEs(DbConf.Elasticsearch.Main.Version, DbConf.Elasticsearch.Main.Address, DbConf.Elasticsearch.Main.Size, DbConf.Elasticsearch.Main.UserName, DbConf.Elasticsearch.Main.Password)
  69. log.Println("初始化 elasticsearch")
  70. }
  71. //初始化redis
  72. if DbConf.Redis.Main != nil {
  73. log.Println("[SYSTEM]初始化 redis")
  74. redis.InitRedisBySize(DbConf.Redis.Main.Address, 100, 30, 300)
  75. }
  76. //
  77. if DbConf.Mongodb.Main != nil {
  78. log.Println("[SYSTEM]初始化 mongodb main")
  79. MQFW = m.MongodbSim{
  80. MongodbAddr: DbConf.Mongodb.Main.Address,
  81. Size: DbConf.Mongodb.Main.Size,
  82. DbName: DbConf.Mongodb.Main.DbName,
  83. ReplSet: DbConf.Mongodb.Main.ReplSet,
  84. }
  85. MQFW.InitPool()
  86. }
  87. if DbConf.Mongodb.Log != nil {
  88. log.Println("[SYSTEM]初始化 mongodb log")
  89. Mgo_Log = m.MongodbSim{
  90. MongodbAddr: DbConf.Mongodb.Log.Address,
  91. Size: DbConf.Mongodb.Log.Size,
  92. DbName: DbConf.Mongodb.Log.DbName,
  93. ReplSet: DbConf.Mongodb.Log.ReplSet,
  94. UserName: DbConf.Mongodb.Log.UserName,
  95. Password: DbConf.Mongodb.Log.Password,
  96. }
  97. Mgo_Log.InitPool()
  98. }
  99. if DbConf.Mysql.Main != nil {
  100. log.Println("[SYSTEM]初始化 main mysql")
  101. MainMysql = &mysql.Mysql{
  102. Address: DbConf.Mysql.Main.Address,
  103. UserName: DbConf.Mysql.Main.UserName,
  104. PassWord: DbConf.Mysql.Main.PassWord,
  105. DBName: DbConf.Mysql.Main.DbName,
  106. MaxOpenConns: DbConf.Mysql.Main.MaxOpenConns,
  107. MaxIdleConns: DbConf.Mysql.Main.MaxIdleConns,
  108. }
  109. MainMysql.Init()
  110. }
  111. if DbConf.Mysql.Active != nil {
  112. log.Println("[SYSTEM]初始化 active mysql")
  113. UserAnalyseDb = &mysql.Mysql{
  114. Address: DbConf.Mysql.Active.Address,
  115. UserName: DbConf.Mysql.Active.UserName,
  116. PassWord: DbConf.Mysql.Active.PassWord,
  117. DBName: DbConf.Mysql.Active.DbName,
  118. MaxOpenConns: DbConf.Mysql.Active.MaxOpenConns,
  119. MaxIdleConns: DbConf.Mysql.Active.MaxIdleConns,
  120. }
  121. UserAnalyseDb.Init()
  122. }
  123. }
  124. }