Mongoの一般的な導入モデルの簡単なまとめ
3653 ワード
MongoDBの配置モード
1.スタンドアロンモード
(1)概要:スタンドアロンモードは一般的にテストまたはローカル実験に使用され、すなわち、データベースに対して追加削除変更操作を行う単一インスタンスのMongodプロセスを開始する.インスタンス・データはすべて1つで、サービスを停止すると停止し、データの損失は回復できません.スタンドアロン・モードでは、本番の導入には使用できません.
(2)配置方式:mongod --dbpath [db path] --port [port num] --logpath [log path] --logappend --directoryperdb --fork
ps:mongoパッケージをダウンロードして直接解凍し、Monodプロセスを開始し、mongo shellでデータベースに対してCRUDを行うことができます.mongodの各パラメータの意味は以下を参照してください.http://docs.mongodb.org/manual/reference/program/mongod/#bin.mongodmongoの各パラメータの意味は、次のとおりです.http://docs.mongodb.org/manual/reference/program/mongo/#bin.mongo
2.主従モード
(1)概要:シングルマシンの導入モードよりもやや頑丈なマスタースレーブの導入モード.slaveノードはmasterノードから全量の同期データであり、データフォールトトレランスの一種であり、ノードから読み取りサービスを提供することができ、ノード間では互いに通信せず、プライマリノードは主に書き込みサービスを提供するために使用されるが、プライマリノードが切れるとクラスタはノードを再選挙せず、クラスタは書き込みサービスを提供できない.
(2)配置方式:mongod --fork --master --oplogSize=[oplogsize] --port [port num] --dbpath [db path] --logpath [log path]
--masterパラメータを追加して、ノードがMasterノードであることを宣言します.mongod --fork --slave --source [master host ip/port] --port [port num] --dbpath [db path] --logpath [log path]
Slaveノードとして宣言されるslaveパラメータを追加します.
3.コピーセットモード
(1)概要:レプリカセットモードは、マスタスレーブノード間だけでなく、ノード間でも通信できる、より堅牢な導入モードである.ノードからプライマリノードからデータをフルバックアップしますが、簡単なmaster-slave配置モードとは異なり、プライマリノードが切れると、ノードから新しいノードを再選択し、クラスタが読み書きサービスを提供する安定性を保障します.この配置モードは、データ規模およびアクセス規模の小さいクラスタで使用できます.
(2)配置方式:
a.mongodインスタンスを起動する:mongod --port [port num] --dbpath [db path] --logpath [log path] --replSet [relSetname]
クラスタの各マシンで上記の指示に従ってmongodインスタンスを起動できます.
b.レプリカセットの初期化:
任意のマシンがログインした後、use admin
を実行してadminユーザーに切り替え、次のコマンドを実行します.config = { _id:[relSetname], members:[
{_id:0,host:[ip:portnum]},
{_id:1,host:[ip:portnum]},
{_id:2,host:[ip:portnum]}]
}
以上のコマンドを実行すると、クラスタはレプリカセットモードを実現します.さっき上陸したこの機械がデフォルトのMaster機械で、他はSlave機械です.メインノードが切れると、ノード間から選挙が再開されます.公式サイトの概略図を参照してください.
具体的な構成は、このブログを参照してください.http://blog.csdn.net/lantian0802/article/details/38663687
4.スライスモード
(1)データ量とアクセスが増大するにつれて、単機版のMongoデータベースはすでに業務の発展をサポートできないかもしれない.上の2種類のmaster-slaveの配置モードを含めて、実はすべてデータの主な準備ノード間の全量同期であり、小量のデータに対してはまあまあであるが、本当に大量のデータのレベルになると、単機の記憶とCPUは耐えられない.これはMongoDBの分布式データベースを開く特性である.つまりデータのSharding方式の配置です.公式サイトの概略図を投げます:データshardingはcollection単位で、Range shardingとhash shardingの2つの方式を提供しました.同じcollectionでは、指定したポリシーに従って複数のマシンにデータを分散し、要求をデータが存在するマシンに導き、分散データの効果を達成します.配置構造は、shardingの配置モードです.各ノードはmongodインスタンスで、3つのロール、Shards、Query Routers、Config serversがあります.Shardsは特定のデータを格納するノードであり、実際には各Shardノードは安定性を保証するためにまた1つのコピーセットモードのMaster-slaveクラスタであってもよい.Query Routersは、読み書き要求をデータのShardingポリシーに従ってConfig ServerからターゲットShardマシンの情報を取得し、読み書き要求をShardマシンに導きます.Config Serverには、マシンのメタデータが格納されています.Shardへのクラスタデータのマッピング関係を含み、Query Routersにマシン情報の参照を提供します.
具体的な原理は公式サイトを参照してください.http://docs.mongodb.org/manual/core/sharding-introduction/
(2)配置方式:a.config機器の配置:mongod --configsvr --dbpath [db path] --port [port num] --logpath [log path] --fork --directoryperdb
b.ルーティングマシンを起動する:mongos --configdb [ip:port,ip:port...] --port [port num] --logpath [log path] --fork
c.shardのスライスデータセットを構成する:mongod --shardsvr --replSet shard1 --port [port num] --dbpath [db path] --logpath [log path] --directoryperdb --fork
詳細については、次の文書を参照してください.http://blog.csdn.net/lantian0802/article/details/42709453
ps:以上、公式サイトとブログを参考にモンゴの集中配置モデルを大まかにまとめました.公式サイトのドキュメントは比較的豊富で、多くの基礎的な詳細を開示しています.
mongod --dbpath [db path] --port [port num] --logpath [log path] --logappend --directoryperdb --fork
mongod --fork --master --oplogSize=[oplogsize] --port [port num] --dbpath [db path] --logpath [log path]
mongod --fork --slave --source [master host ip/port] --port [port num] --dbpath [db path] --logpath [log path]
mongod --port [port num] --dbpath [db path] --logpath [log path] --replSet [relSetname]
config = { _id:[relSetname], members:[
{_id:0,host:[ip:portnum]},
{_id:1,host:[ip:portnum]},
{_id:2,host:[ip:portnum]}]
}
mongod --configsvr --dbpath [db path] --port [port num] --logpath [log path] --fork --directoryperdb
mongos --configdb [ip:port,ip:port...] --port [port num] --logpath [log path] --fork
mongod --shardsvr --replSet shard1 --port [port num] --dbpath [db path] --logpath [log path] --directoryperdb --fork