在谷歌云平台上部署mongodb?

时间:2016-03-24 23:34:26

标签: mongodb google-app-engine google-cloud-platform

大家好我的初创公司我正在使用谷歌云平台,现在我正在使用带有node.js的app引擎这部分工作正常,但现在用于数据库,因为我是mongoDB我看到这个用于mongoDB https://console.cloud.google.com/launcher/details/click-to-deploy-images/mongodb?q=mongo现在,当我在我的服务器上启动它时,它现在在我的计算引擎中创建了三个实例,但现在我不知道哪个是主要实例,哪个是次要的,还有一件事,因为我读到主要实例应该用于写入数据和辅助阅读,现在当我将查询我的数据库时,我应该提供辅助实例网址和更新/插入我的mongodb数据库中的数据我应该提供主实例网址,否则我应该使用哪个网址用于我的mongodb数据库上的CRUD操作?在启动后,我必须手动对任何conf文件或任何文件进行任何更改,或者他们已经为我做了这些更改?我还必须制作所有三个实例的实例组吗?

如果你们中的任何一个人认为我没有对此进行任何研究或者它不是一个有效的stackoverflow问题,那么我很抱歉google云平台是非常新的,这就是为什么没有太多的文档,这也是我的第一次在我的服务器上部署我的代码,这就是为什么我在这个领域完全noob感谢无论如何请帮助我这里的人。

1 个答案:

答案 0 :(得分:4)

  

但现在我不知道哪个是主要实例,哪个是次要实例,

通常,Cloud Launcher会将主要内容命名为后缀-1(短划线一)。例如,默认情况下,它会将mongodb-1-server-1实例创建为主要实例。

虽然您也可以通过rs.status()在任何实例上运行the mongo shell来发现哪一个是主要的。举个例子:

mongo --host <External instance IP> --port <Port Number>

您可以使用gcloud获取实例的外部IP列表。例如:

gcloud compute instances list

默认情况下,您无法立即连接,您需要为计算引擎创建防火墙规则以打开端口。对于示例

gcloud compute firewall-rules create default-allow-mongo --allow tcp:<PORT NUMBER> --source-ranges 0.0.0.0/0 --target-tags mongodb --description "Allow mongodb access to all IPs"

插入合理的端口号,请避免使用默认值。您可能还希望限制源IP范围。即你的办公室IP。另请参阅Cloud Platform: Networking

  

我读到主要实例应该用于写入数据,辅助用于阅读,

通常复制是为了提供冗余和高可用性。主要实例用于读写,次要用作副本以提供一定级别的容错。即丢失主服务器。

另见:

  

现在,当我将查询我的数据库时,我应该提供辅助实例网址以及更新/插入我的mongodb数据库中的数据应该提供主实例网址,否则我应该使用哪个网址用于我的mongodb数据库上的CRUD操作

您可以在MongoDB URI中同时提供,驱动程序将确定读/写的位置。例如,在您的Node.js中,您可以:

mongodb://<instance 1>:<port 1>,<instance 2>:<port 2>/<database name>?replicaSet=<replica set name>

Cloud Launcher设置的默认副本集名称为rs0。另见:

  

也在启动后,我必须手动对任何conf文件或任何文件进行任何更改,或者他们已经为我做了这些?我还必须制作所有三个实例的实例组吗?

这取决于您的应用程序用例,但如果您通过单击和部署启动MongoDB配置应该全部负责。

如需完整指南,请按照教程Deploy MongoDB with Node.js进行操作。我还建议您查看MongoDB security checklist

希望有所帮助。