当前位置: 首页 > Linux

MongoDB搭建集群+设置

时间:2023-04-06 23:31:37 Linux

集群搭建快速搭建一个mongoDB3副本集群,并设置副本集的内存容量。后台mongodb必须使用副本集来读写东西。在linux环境下,docker构建方案创建docker网络。mongo-clusterdockernetworkls构建副本集dockerrun-p30001:27017--namemongo1--netmy-mongo-clustermongomongod--replSetmy-mongo-setdockerrun-p30002:27017--namemongo2--netmy-mongo-clustermongomongod--replSetmy-mongo-setdockerrun-p30003:27017--namemongo3--netmy-mongo-clustermongomongod--replSetmy-mongo-set配置集群并初始化dockerexec-itmongo1mongodb=(newMongo('localhost:27017')).getDB('test')设置集群配置,选举主节点config={"_id":"my-mongo-set","members":[{“_id”:0,“主机”:“mongo1:27017”},{“_id”:1,“主机”:“mongo2:27017”},{“_id”:2,“主机”:“mongo3:27017"}]}初始化集群配置rs.initiate(config)查询是否配置成功rs.status()发现成员中有PRIMARY,说明选举完成,可以正常使用。使用创建网络的方法使用mongo-go-driver驱动连接时,如果应用也在docker中,需要在docker网络中正常构建与集群的副本集dockerrun-p30001:27017--namemongo1mongomongod--replSetmy-mongo-setdockerrun-p30002:27017--namemongo2mongomongod--replSetmy-mongo-setdockerrun-p30003:27017--namemongo3mongomongod--replSetmy-mongo-set如果发现mongodb占用内存过高,可以选择添加--wiredTigerCacheSizeGBxxx来限制内存使用。例如:dockerrun-p30003:27017--namemongo3mongomongod--replSetmy-mongo-set--wiredTigerCacheSizeGB2配置集群并初始化查询IPdockerinspectmongo1配置初始化dockerexec-itmongo1mongodb=(newMongo('localhost:27017')).getDB('test')config={"_id":"my-mongo-set","members":[{"_id":0,"host":"127.12.0.8:27017“},{“_id”:1,“主机”:“127.12.0.9:27017”},{“_id”:2,“主机”:“127.12.0.6:27017”}]}rs.initiate(配置)使用此方法时不需要指定docker网络,但必须知道宿主机的网络网络总结由于mongodb占用内存很高,cluster的方式会占用更多。建议将集群与应用分开。当然,生产环境可能不是一个简单的集群。Mongodb的GO官方驱动并不友好。在使用东西的时候考虑是否需要在数据库上切换方式。非常适合在测试环境中使用