0

いくつか質問がありますが、自分では答えられませんでした。

私がこれまでに理解したこと:

レプリケーション: データをレプリケートできるため、フェイルオーバー時に別のインスタンスからデータにアクセスできます。ここまでクリア。

シャーディング: データをシャードに分割できます。データセットが大きくなりすぎた場合に、他のマシンにデータを追加できます。

mongodbでは、3つの構成サーバー、少なくとも1つのマスターサーバー(mongos、フェイルオーバーの影響を避けるためにおそらく3つ必要)と、データを含む少なくとも1つのデータサーバー(mongod、フェイルオーバーを避けるためにおそらく3つ)が必要です。

私の質問:

  • データサーバーでは、どのような種類のハードウェアから始めればよいですか? (datadir の GB のサイズ、何から始めるのが良いでしょうか?)
  • 余分なインスタンスのデータ インスタンスで configserver を実行するのは良いことですか?
  • どこでmongosを開始しますか? 3 つのインスタンス (config または dataservers) のいずれかで実行できますが、それで問題ありませんか?
  • データサーバーが新しいインスタンスを十分に早く必要としていることをどのように知ることができますか? (満タンになる前?)
  • レプリカセットはいくつ必要ですか? (またはそれは何に依存しますか?)
  • 3 つのまったく異なるサーバーで飼育係を実行しています。パフォーマンスが良好である限り、それらのサーバーでも構成サーバーを実行できますか?
4

1 に答える 1

1

データサーバーでは、どのような種類のハードウェアから始めるべきですか?

これは、ワーキング セットを知らずに答えることはできません。MongoDB に必要な RAM の量は、ワーキング セットのサイズです。

余分なインスタンスのデータ インスタンスで configserver を実行するのは良いことですか?

個人的には、フェイルオーバーの理由から、構成サーバーがランダムなレプリカシャードでダウンすることは望ましくありません。

どこでmongosを開始しますか? 3 つのインスタンス (config または dataservers) のいずれかで実行できますが、それで問題ありませんか?

mongos はクエリ用のルーターにすぎません。通常、これらをアプリケーション サーバーに平手打ちして、アプリケーションが (またはいくつかの) ローカル mongos と通信し、それがネットワークにルーティングされるようにすることをお勧めします。これらを介して大量の集計クエリを送信すると、CPU/メモリの使用量が増える可能性があることに注意してください。

データサーバーが新しいインスタンスを十分に早く必要としていることをどのように知ることができますか?

これは、サーバーの場所によって異なります。つまり、AWS 上にある場合は、クラスター内の使用可能なディスク容量の合計が転換点に達したときに、新しいシャードのオンライン化とセットアップを自動的にトリガーするアラートをセットアップできます。ただし、これはサーバーがどこにあり、誰と一緒にいるかによって異なります。これについては、自分で詳しく調べる必要があります。

レプリカセットはいくつ必要ですか?

シャードごとに 1 つ。基本的に、各シャードはレプリカ セットである必要があります。

3 つのまったく異なるサーバーで飼育係を実行していますが、パフォーマンスが良好である限り、それらのサーバーでも構成サーバーを実行できますか?

私はそれに答えることができるほど十分に Zookeeper を使用していません。

于 2013-07-02T09:59:45.737 に答える