0

3 つの完全なインスタンスの Mongo レプリカ セットがあり、3 つの個別の AWS EC2 Linux インスタンス (すべて同じアベイラビリティ ゾーンですが異なるサブネット) にセットアップされています。同じアベイラビリティ ゾーン内の別の EC2 ボックスからレプリカ セットを読み書きできますが、リモート マシン (ローカル ボックス) からは読み取りしかできません。挿入または検索と変更を試みると、「プライマリの読み取り設定に一致するレプリカ セットのメンバーに接続できません」というエラーが返されます。

プライマリにのみ接続するように接続文字列を変更すると、書き込みは正常に行われますが、明らかに他のボックスには複製されません。

ローカル ボックスと 3 つの Mongo ボックス間のすべてのトラフィックを許可しようとしましたが、変化はありませんでした。また、他のボックスの dns の解決に問題がある可能性があることも読んだので、ホスト エントリを追加しましたが、これも役に立ちませんでした。すべてのトラフィックを開くと、3 つのボックスすべてに問題なく ping を実行できます。

ドライバーとレプリカ ボックスの間に必要なその他の構成はありますか?

私は c# Mongo 1.8.1 ドライバーを使用しています。私の接続文字列は次のようになります

mongodb://mongobox1,mongobox2,mongobox3/dbname?replicaSet=replicasetname&readpreference=primaryPreferred

アップデート:

また、ときどき (条件がわからない)、マスターを停止すると、ローカルから正常に書き込むことができ、マシンを元に戻すと、適切に同期されることもわかりました。しかし、マシンを元に戻すとすぐに、ローカルから書き込むことができなくなります。

ありがとう、

マット

4

1 に答える 1

0

これを締めくくるために、ボックスがレプリカセット内の内部IPに接続していたということになりましたが、私は外部IPを介して接続しようとしていました. それらは一致する必要があります。

于 2014-12-16T00:25:16.137 に答える