私は8GbRAMを搭載した高速のWindows7PCを持っています。このMongoDBレプリカセットをテストしたいと思います:http ://www.mongodb.org/display/DOCS/Replica+Sets自分の開発用。値段が高いので、3台は買いたくないです。Hyper-Vなどのある種のテクノロジを使用してセットアップできるようにする方法はありますか?そうでない場合は、PCを何台、どのような種類を購入すればよいですか?
6 に答える
異なるポートの同じマシンで複数のmongodプロセスを実行し、異なるデータディレクトリをポイントして、それらを同じレプリカセットの一部にすることができます。
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つに接続し、ここで概説する手順を使用してレプリカセットを追加開始します。
Ubuntu 18.04では、MongoDb:シェルバージョン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;
}
});
diffの同じサーバーで実行される複数のmongodインスタンスを作成できます。ポート。
構成とレプリカセットの動作については、以下のブログを参照してください。これにより、同じボックスの指示に従ってレプリカセットがセットアップされます。
http://pareshbhav.blogspot.com/2014/12/mongdb-replicaset-and-streaming.html
非常に簡単な方法の1つは、Dockerを使用してMongoDBレプリカセットを設定することです。
Dockerホスト内で、コンテナー間で分離されたDNS解決を提供するDockerネットワークを作成できます。次に、MongoDBDockerコンテナーの作成を開始できます。彼らは最初はお互いに気づいていませんでした。ただし、コンテナの1つに接続し、replica set initializationコマンドを実行することで、レプリケーションを初期化できます。最後に、アプリケーションコンテナを同じDockerネットワークにデプロイできます。
これを機能させる方法については、 Dockerの投稿を使用してMongoDBレプリカセットを確認してください。
冗長性と高可用性の条件と矛盾するため、同じ単一のホストにレプリカを設定しても意味がありません。PCがダウンしたり、速度が低下したりすると、レプリカセットが破損したり、劣化したりします。ただし、レプリカセットを評価するために複数のPCを購入するのは確かにコスト効率が高くないため、マスタースレーブレプリケーションを使用したMongoDBレプリカセットで説明されているシナリオを検討できます。
レプリカセットメンバーの数に関しては、その通りです。最も一般的なトポロジは3つのメンバーで構成されていますが、別のホストにアービターを追加することもお勧めします。これは軽量のプロセスであり、多くのリソースを必要としませんが、PRIMARYが失敗したときにメンバーが偶数になった場合に備えて、新しいPRIMARYの選挙でクォーラムを維持する上で重要な役割を果たします。
3つのノードでMongoDBレプリカセットを構成します。
次の3つのノードがあるとします。
- ホスト名Mongodb01、IPアドレス192.168.1.11、およびポート番号27017でインストールされたMongoDB
- ホスト名Mongodb02、IPアドレス192.168.1.22、およびポート番号27017でインストールされたMongoDB
- ホスト名Mongodb03、IPアドレス192.168.1.33、およびポート番号27017でインストールされたMongoDB
この構成を開始する前に、以下のポイントが設定されていることを確認してください。
- MongoDBサービスがインストールされ、3つのノードすべてで実行されている
- 3つのノードはすべて、IPアドレスまたはホスト名を介して相互に接続されています
- デフォルトのポート番号27017および28017(または使用する予定のその他のポート)は、ファイアウォールまたはウイルス対策によってブロックされていません。
それでは、構成から始めましょう
手順1:mongodb.conf
各ノードのファイルを変更して、レプリカセット情報を含めます。
replSet = myCluster
rest = true
replSet
はレプリカセットの一意の名前であり、すべてのノードのreplSet
パラメータの値は同じである必要があります。rest
オプションですが、管理WebページのRESTインターフェイスを有効にするために使用されます。
ステップ2: 3つのノードすべてでMongoDBサービスを再起動します
手順3:プライマリとして使用する予定のノードでレプリカセットを構成します。この例では、Mongodb01のmongoシェルで以下のコマンドを実行します
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()
すべてのノードがレプリカセットに追加されているかどうかを確認します。レプリカ内のノードをチェックする他の方法は、ブラウザのアドレスバーで次のURLを使用することです。http://<hostname or ip-address>:<port>/_replSet
例えば; http://localhost:27017/_replSet
またはhttp://Mongodb01:27017/_replSet
またはhttp://192.168.1.11:27017/_replSet
。
このURLには、ファイルで設定rest = true
した場合にのみアクセスできますmongodb.conf