1

我有一个使用“Spring Data MongoDB”库连接 MongoDB 数据库的 Spring RESTFul Web 服务项目。

用我的本地机器成功测试后,我准备在云服务器上部署(Windows Azure 的工作角色)。

我已经从官方网站(这里)一步一步地使用了名为 TomcatWorkerRole 的额外工作角色(因为我只想运行 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 角色使用 hosts 文件为每个实例设置别名。因此,客户端应用程序实例需要相同的实例。此外,客户端应用程序还必须具有副本集的名称。

问题是我怎么知道“rs_X”代表哪个主机?因为我必须指定主机才能创建客户端连接。

有人可以帮我吗?我是否必须改变主意使用 MongoDB 的 VM 角色而不是工作角色?

谢谢你。

PS。对不起我的英语不好。

4

0 回答 0