我有一台带有8Gb RAM的快速Windows 7 PC。我想为我的开发测试这个MongoDB副本集:http://www.mongodb.org/display/DOCS/Replica+Sets。我不想买3台电脑,因为它有点贵。有没有办法使用某种技术,如Hyper-V,才能设置它?如果没有,我应该买多少台电脑?我们应该买什么?
答案 0 :(得分:8)
您可以在不同端口上的同一台计算机上运行多个mongod进程,并指向不同的数据目录,并使它们成为同一个replicaset的一部分。
http://www.mongodb.org/display/DOCS/Starting+and+Stopping+Mongo
mongod --dbpath c:/ data1 --port 12345 --replSet foo
mongod --dbpath c:/ data2 --port 12346 --replSet foo
然后使用mongo控制台连接到其中一个mongod进程,并使用此处列出的说明添加启动副本集:
答案 1 :(得分:0)
你可以创建在diff上的同一台服务器上运行的多个mongod实例。端口。
配置和副本集的工作方式,请参阅下面的博客。这将根据同一个盒子上的指令设置副本集。
http://pareshbhav.blogspot.com/2014/12/mongdb-replicaset-and-streaming.html
答案 2 :(得分:0)
一种超级简单的方法是设置the MongoDB replica set by using Docker。
在我们的Docker主机内,我们可以创建Docker Network,这将为我们提供跨容器的隔离DNS解析。然后,我们可以开始创建MongoDB docker容器。他们最初不会相互了解。但是,我们可以通过连接到容器之一并运行副本集初始化命令来初始化复制。最后,我们可以将应用程序容器部署在相同的docker网络下。
查看the MongoDB replica set by using Docker帖子,了解如何实现此功能。
答案 3 :(得分:0)
在同一单个主机上设置副本没有用,因为这与冗余和高可用性的条款相矛盾。如果您的PC出现故障或速度变慢,则副本集将被破坏或降级。但是,可以肯定的是,购买多台PC来评估副本集并不划算,因此可以考虑MongoDB Replica Set with Master-Slave Replication中所述的可能情况。
关于副本集成员的数量,很正确,最常见的拓扑由3个成员组成,但是我建议您还在单独的主机上添加一个仲裁器。这是一个轻量级的过程,不需要很多资源,但是在PRIMARY失败后,如果成员数是偶数的话,它在维持新PRIMARY选举的法定人数方面起着重要作用。
答案 4 :(得分:0)
在Ubuntu 18.04上,MongoDb:shell版本v4.2.6
在终端(1)中(由于我们使用的是0.0.0.0,因此请使用防火墙保护端口)
sudo systemctl stop mongod
sudo systemctl status mongod
sudo mongod --auth --port 27017 --dbpath /var/lib/mongodb --replSet rs0 --bind_ip 0.0.0.0
然后打开终端(2)的另一个实例(保持上一个打开)
mongo -u yourUserName -p (it will ask for password - follow on)
rs.initiate()
然后打开另一个终端(3)实例 在这里,您将使用连接URL运行server.js,如下所示:
const url = 'mongodb://' + user + ':' + password +
'@localhost:27017/?replicaSet=rs0'
MongoClient.connect(url, { useUnifiedTopology: true, authSource: 'admin' },
function (err, client) {
if (err) {
throw err;
}
});
答案 5 :(得分:0)
我们将为MongoDB副本集配置3个节点。
假设我们有3个节点,分别是:
在开始此配置之前,请确保您具有以下几点:
现在,让我们开始进行配置
步骤1:修改每个节点的mongodb.conf
文件以包括副本集信息。
replSet = myCluster
rest = true
replSet
是副本集的唯一名称,并且所有节点的replSet
参数必须具有相同的值。 rest
是可选的,但用于为管理网页启用休息界面。
步骤2:在所有3个节点上重新启动MongoDB服务
步骤3::在您打算用作主节点的节点上配置副本集。在我们的例子中,我们将在Mongodb01的mongo shell中执行以下命令
rs.initiate()
启动副本集
rs.add("<hostname or ip-address>:<port-no>")
在副本集中添加辅助节点。
例如rs.add("Mongodb02:27017")
或rs.add("192.168.1.22:27017")
rs.addArb("<hostname or ip-address>:<port-no>")
在副本集中添加仲裁节点。
例如rs.addArb("Mongodb03:27017")
或rs.add("192.168.1.33:27017")
rs.status()
检查是否所有节点都已添加到副本集中。检查副本中节点的其他方法是使用浏览器地址栏中http://<hostname or ip-address>:<port>/_replSet
例如http://localhost:27017/_replSet
或http://Mongodb01:27017/_replSet
或http://192.168.1.11:27017/_replSet
。
仅当您在rest = true
文件中设置mongodb.conf
时,此URL才可访问