1

「Spring Data MongoDB」ライブラリを使用して MongoDB データベースに接続する Spring RESTFul Web サービス プロジェクトがあります。

ローカル マシンでのテストに成功したら、クラウド サーバー (Windows Azure のワーカー ロール) にデプロイする準備が整いました。

TomcatWorkerRole と呼ばれる追加のワーカー ロールを使用して、公式 Web サイト (ここ)から段階的に実行しました (内部使用のみで mongodb を実行したいので、同じクラウド サービスに Web アプリケーションをデプロイする必要があります)。

展開ではすべて正常に機能しますが、アプリケーションのデータベース接続の設定ではそうではありません。

問題は、レプリカセットがこのように見えるためです..

rs:PRIMARY> rs.conf()
{
   "_id" : "rs",
   "version" : 1,
   "members" : [
         {
             "_id" : 0,
             "host" : "rs_0:27017"
         },
         {
             "_id" : 1,
             "host" : "rs_1:27017"
         },
         {
             "_id" : 2,
             "host" : "rs_2:27017"
         }
   ]
}

説明のため..

MongoDB を実行しているインスタンスの IP が変更される可能性を考慮して、worker ロールはホスト ファイルを使用して各インスタンスのエイリアスを作成します。したがって、クライアント アプリケーション インスタンスには同じインスタンスが必要です。さらに、クライアント アプリケーションには、レプリカ セットの名前も必要です。

問題は、「rs_X」がどのホストを表しているかをどのように知ることができるかです。クライアント接続を作成するには、ホストを指定する必要があるためです。

誰か助けてくれませんか?worker ロールの代わりに MongoDB に VM のロールを使用するには、考えを変える必要がありますか?

ありがとうございました。

PS。私の英語でごめんなさい。

4

0 に答える 0