db.go 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. package public
  2. import (
  3. "log"
  4. util "app.yhyue.com/moapp/jybase/common"
  5. elastic "app.yhyue.com/moapp/jybase/es"
  6. m "app.yhyue.com/moapp/jybase/mongodb"
  7. "app.yhyue.com/moapp/jybase/mysql"
  8. "app.yhyue.com/moapp/jybase/redis"
  9. )
  10. var (
  11. DbConf *dbConf
  12. Mysql *mysql.Mysql
  13. BaseMysql *mysql.Mysql
  14. PushMysql *mysql.Mysql
  15. BaseService *mysql.Mysql
  16. GlobalCommonMysql *mysql.Mysql
  17. MQFW m.MongodbSim
  18. Mgo_Ent m.MongodbSim
  19. Mgo_Log m.MongodbSim
  20. Mgo_Bidding m.MongodbSim
  21. //Mgo_Qyfw m.MongodbSim
  22. Other elastic.Es
  23. Free elastic.Es //登录后的免费用户搜索使用
  24. Doc elastic.Es
  25. )
  26. type dbConf struct {
  27. Mongodb struct {
  28. Main *mgoConf
  29. Log *mgoConf
  30. Ent *mgoConf
  31. Qyfw *mgoConf
  32. Bidding *mgoConf
  33. Seo *mgoConf
  34. }
  35. Elasticsearch struct {
  36. Main *esConf
  37. Other *esConf
  38. Free *esConf
  39. Doc *esConf
  40. }
  41. Redis struct {
  42. Main *redisConf
  43. Login *redisConf
  44. }
  45. Mysql struct {
  46. Main *mysqlConf
  47. Push *mysqlConf
  48. Base *mysqlConf
  49. GlobalCommon *mysqlConf
  50. }
  51. }
  52. type mgoConf struct {
  53. Address string
  54. Size int
  55. DbName string
  56. ReplSet string
  57. UserName string
  58. Password string
  59. Collection string
  60. Collection_back string
  61. }
  62. type esConf struct {
  63. Version string
  64. Address string
  65. Size int
  66. UserName string
  67. Password string
  68. EsIndex string
  69. EsType string
  70. }
  71. type redisConf struct {
  72. Address string
  73. }
  74. type mysqlConf struct {
  75. DbName string
  76. Address string
  77. UserName string
  78. PassWord string
  79. MaxOpenConns int
  80. MaxIdleConns int
  81. }
  82. func init() {
  83. util.ReadConfig("./db.json", &DbConf)
  84. if DbConf != nil {
  85. if DbConf.Elasticsearch.Main != nil {
  86. elastic.NewEs(DbConf.Elasticsearch.Main.Version, DbConf.Elasticsearch.Main.Address, DbConf.Elasticsearch.Main.Size, DbConf.Elasticsearch.Main.UserName, DbConf.Elasticsearch.Main.Password)
  87. log.Println("初始化 elasticsearch")
  88. }
  89. if DbConf.Elasticsearch.Other != nil {
  90. Other = &elastic.EsV7{
  91. Address: DbConf.Elasticsearch.Other.Address,
  92. UserName: DbConf.Elasticsearch.Other.UserName,
  93. Password: DbConf.Elasticsearch.Other.Password,
  94. Size: DbConf.Elasticsearch.Other.Size,
  95. }
  96. Other.Init()
  97. log.Println("初始化 Other elasticsearch")
  98. }
  99. if DbConf.Elasticsearch.Free != nil {
  100. Free = &elastic.EsV7{
  101. Address: DbConf.Elasticsearch.Free.Address,
  102. UserName: DbConf.Elasticsearch.Free.UserName,
  103. Password: DbConf.Elasticsearch.Free.Password,
  104. Size: DbConf.Elasticsearch.Free.Size,
  105. }
  106. Free.Init()
  107. //es.InitElasticSizeByAuth(DbConf.Elasticsearch.Other.Address, DbConf.Elasticsearch.Other.Size,
  108. // DbConf.Elasticsearch.Other.UserName, DbConf.Elasticsearch.Other.Password)
  109. log.Println("初始化 Free elasticsearch")
  110. }
  111. if DbConf.Elasticsearch.Doc != nil {
  112. //es.InitElasticSizeByAuth(DbConf.Elasticsearch.Doc.Address, DbConf.Elasticsearch.Doc.Size,
  113. // DbConf.Elasticsearch.Doc.UserName, DbConf.Elasticsearch.Doc.Password)
  114. Doc = &elastic.EsV7{
  115. Address: DbConf.Elasticsearch.Doc.Address,
  116. UserName: DbConf.Elasticsearch.Doc.UserName,
  117. Password: DbConf.Elasticsearch.Doc.Password,
  118. Size: DbConf.Elasticsearch.Doc.Size,
  119. }
  120. Doc.Init()
  121. log.Println("初始化 doc elasticsearch")
  122. }
  123. //初始化redis
  124. if DbConf.Redis.Main != nil {
  125. log.Println("初始化 redis")
  126. redis.InitRedisBySize(DbConf.Redis.Main.Address, 100, 30, 300)
  127. }
  128. //
  129. if DbConf.Mongodb.Main != nil {
  130. log.Println("初始化 mongodb main")
  131. MQFW = m.MongodbSim{
  132. MongodbAddr: DbConf.Mongodb.Main.Address,
  133. Size: DbConf.Mongodb.Main.Size,
  134. DbName: DbConf.Mongodb.Main.DbName,
  135. ReplSet: DbConf.Mongodb.Main.ReplSet,
  136. }
  137. MQFW.InitPool()
  138. }
  139. if DbConf.Mongodb.Bidding != nil {
  140. log.Println("初始化 mongodb bidding")
  141. Mgo_Bidding = m.MongodbSim{
  142. MongodbAddr: DbConf.Mongodb.Bidding.Address,
  143. Size: DbConf.Mongodb.Bidding.Size,
  144. DbName: DbConf.Mongodb.Bidding.DbName,
  145. ReplSet: DbConf.Mongodb.Bidding.ReplSet,
  146. UserName: DbConf.Mongodb.Bidding.UserName,
  147. Password: DbConf.Mongodb.Bidding.Password,
  148. }
  149. Mgo_Bidding.InitPool()
  150. }
  151. if DbConf.Mongodb.Ent != nil {
  152. log.Println("初始化 mongodb ent")
  153. Mgo_Ent = m.MongodbSim{
  154. MongodbAddr: DbConf.Mongodb.Ent.Address,
  155. Size: DbConf.Mongodb.Ent.Size,
  156. DbName: DbConf.Mongodb.Ent.DbName,
  157. ReplSet: DbConf.Mongodb.Ent.ReplSet,
  158. UserName: DbConf.Mongodb.Ent.UserName,
  159. Password: DbConf.Mongodb.Ent.Password,
  160. }
  161. Mgo_Ent.InitPool()
  162. }
  163. if DbConf.Mongodb.Log != nil {
  164. log.Println("初始化 mongodb log")
  165. Mgo_Log = m.MongodbSim{
  166. MongodbAddr: DbConf.Mongodb.Log.Address,
  167. Size: DbConf.Mongodb.Log.Size,
  168. DbName: DbConf.Mongodb.Log.DbName,
  169. ReplSet: DbConf.Mongodb.Log.ReplSet,
  170. UserName: DbConf.Mongodb.Log.UserName,
  171. Password: DbConf.Mongodb.Log.Password,
  172. }
  173. Mgo_Log.InitPool()
  174. }
  175. //if DbConf.Mongodb.Qyfw != nil {
  176. // log.Println("初始化 mongodb ent")
  177. // Mgo_Qyfw = m.MongodbSim{
  178. // MongodbAddr: DbConf.Mongodb.Qyfw.Address,
  179. // Size: DbConf.Mongodb.Qyfw.Size,
  180. // DbName: DbConf.Mongodb.Qyfw.DbName,
  181. // }
  182. // Mgo_Qyfw.InitPool()
  183. //}
  184. if DbConf.Mysql.Main != nil {
  185. log.Println("初始化 mysql")
  186. Mysql = &mysql.Mysql{
  187. Address: DbConf.Mysql.Main.Address,
  188. UserName: DbConf.Mysql.Main.UserName,
  189. PassWord: DbConf.Mysql.Main.PassWord,
  190. DBName: DbConf.Mysql.Main.DbName,
  191. MaxOpenConns: DbConf.Mysql.Main.MaxOpenConns,
  192. MaxIdleConns: DbConf.Mysql.Main.MaxIdleConns,
  193. }
  194. Mysql.Init()
  195. }
  196. //
  197. if DbConf.Mysql.Base != nil {
  198. log.Println("初始化 BaseMysql")
  199. BaseMysql = &mysql.Mysql{
  200. Address: DbConf.Mysql.Base.Address,
  201. UserName: DbConf.Mysql.Base.UserName,
  202. PassWord: DbConf.Mysql.Base.PassWord,
  203. DBName: DbConf.Mysql.Base.DbName,
  204. MaxOpenConns: DbConf.Mysql.Base.MaxOpenConns,
  205. MaxIdleConns: DbConf.Mysql.Base.MaxIdleConns,
  206. }
  207. BaseMysql.Init()
  208. }
  209. if DbConf.Mysql.GlobalCommon != nil {
  210. log.Println("初始化 GlobalCommonMysql")
  211. GlobalCommonMysql = &mysql.Mysql{
  212. Address: DbConf.Mysql.GlobalCommon.Address,
  213. UserName: DbConf.Mysql.GlobalCommon.UserName,
  214. PassWord: DbConf.Mysql.GlobalCommon.PassWord,
  215. DBName: DbConf.Mysql.GlobalCommon.DbName,
  216. MaxOpenConns: DbConf.Mysql.GlobalCommon.MaxOpenConns,
  217. MaxIdleConns: DbConf.Mysql.GlobalCommon.MaxIdleConns,
  218. }
  219. GlobalCommonMysql.Init()
  220. }
  221. }
  222. }