首页 文章

在谷歌 Cloud 平台上部署mongodb?

提问于
浏览
2

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

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

1 回答

  • 4

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

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

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

    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 .

    希望有所帮助 .

相关问题