我有一个使用“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。对不起我的英语不好。