大家好,实际上对于我的初创公司,我正在使用谷歌云平台,现在我正在使用带有 node.js 的应用程序引擎,这部分工作正常,但现在对于数据库,因为我是 mongoDB,我看到了 mongoDB https://console.cloud.google.com/launcher/details/click-to-deploy-images/mongodb?q=mongo现在,当我在我的服务器上启动它时,它在我的计算引擎中创建了三个实例,但现在我不知道哪个是主要实例,哪个是次要实例,还有一件事,因为我读到主要实例应该用于写入数据和辅助阅读,现在当我查询我的数据库时,我应该提供辅助实例 url 以及在我的 mongodb 数据库中更新/插入数据我应该提供主实例 url 否则我应该使用哪个 url 对我的 mongodb 数据库进行 CRUD 操作?同样在启动后,我是否必须手动对任何 conf 文件或任何文件进行任何更改,或者他们已经为我完成了??另外,我是否必须创建所有三个实例的实例组??
如果你们中的任何人认为我没有对此进行任何研究或者它不是一个有效的 stackoverflow 问题那么我很抱歉谷歌云平台是非常新的这就是为什么没有太多文档这也是我的第一次在服务器上部署我的代码,这就是为什么我在这个领域完全是菜鸟谢谢无论如何请帮助我离开这里的人。
最佳答案
but now i don't know which is primary instance and which is secondary,
通常是 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
i read that primary instance should be used for writing data and secondary for reading,
一般复制是为了提供冗余和高可用性。其中主要实例用于读取和写入,辅助实例充当副本以提供一定程度的容错。即主服务器丢失。
另见:
now when i will query my database should i provide secondary instance url and for updating/inserting data in my mongodb database should i provide primary instance url otherwise which url should i use for CRUD operations on my mongodb database
您可以在 MongoDB URI 中提供两者并且驱动程序将找出读取/写入的位置。例如,在您的 Node.js 中,您可以:
mongodb://<instance 1>:<port 1>,<instance 2>:<port 2>/<database name>?replicaSet=<replica set name>
Cloud Launcher 设置的默认副本集名称是rs0。另见:
also after launcing this do i have to make any changes in any conf file or in any file manually or they already done that for me ?? Also do i have to make instance groups of all three instances or not ??
这取决于您的应用程序用例,但如果您通过单击启动并部署 MongoDB 配置,则应全部考虑在内。
如需完整指南,请遵循教程:Deploy MongoDB with Node.js .我还建议查看 MongoDB security checklist .
希望对您有所帮助。
关于mongodb - 在谷歌云平台上部署 mongodb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36211755/
我正在尝试部署在Puma和jruby上运行的Rails应用程序。Procfile如下web:bundleexecpuma-Cconfig/puma.rb-p$PORT-e$RACK_ENVPuma的配置放在config/puma.rbifENV['RACK_ENV']!='production'||ENV['RAILS_ENV']!='production'workersInteger(ENV['PUMA_WORKERS']||4)endthreadsInteger(ENV['MIN_THREADS']||1),Integer(ENV['MAX_THREADS']||4)rackupD
为什么需要NFT市场?NFTMarketplace允许用户购买、出售、交易、查看或创建自己的NFT,就像他们需要一个市场来购买物理或数字世界中的大多数产品一样。几乎每个人都可以进入NFT市场,但要做到这一点,用户必须满足以下要求:一个NFT市场用户账户,允许您在给定平台上购买NFT。你需要一个与区块链兼容的加密钱包来购买NFT。NFTMarketplace非常重要,因为它连接了买卖双方,并为用户提供了多种工具来快速创建自己的NFT。艺术家可以在市场上列出要出售的NFT,买家可以通过投标过程探索市场并购买物品。NFT市场开发过程解释创建NFT市场是一个耗时的过程,需要编程知识和理解。那么搭建NF
在Ruby中是否有一种平台无关的方式将EOF符号写入字符串。在*nix中,我认为符号是^D,但在Windows中是^Z,这就是我问的原因。 最佳答案 EOF不是一个字符,它是一个状态。终端使用控制字符来表示此状态(C-d)。没有这样的事情是“读一个EOF字符”,写一个也是一样的。如果您正在写入文件,请在完成后将其关闭。看这个mailinglistpost:ItsoundslikeyouarethinkingofEOFasanin-bandbutspecialcharactervaluethatmarkstheendoffile.It
近年来,随着信息化时代的到来,三维全景拼接以视频监控领域为代表的智能硬件公司迅速崛起,随后全国各地在视频监控领域进行了大量的建设。但随着摄像头数量的增加,视频监控画面离散、庞杂、关联性差等诸多问题日渐凸显。如何优化现有视频技术,助力管理者或使用者有效、直观、准确地掌控现场实时动态,成为我国信息化前行路上面临的新课题。视频融合技术平台解决方案北京智汇云舟科技有限公司成立于2012年,专注于创新性的“视频孪生(实时实景数字孪生)”技术研发与应用。公司依托自研三维地理信息引擎(3DGIS),融合建筑信息模型(BIM)、视频监控(Video)、人工智能(AI)及物联网(IOT)等多种技术,并在此基础上
我正在尝试重构我的sinatra代码以将我的主文件分成单独的文件,使用来自thisresponse的一些技巧,我在部署到heroku时遇到了麻烦。以前我没有config.ru文件,只是使用了我的Procfile,它是:web:bundleexecrubyweb.rb-p$PORT根据thisarticle.从重构开始,我现在将Procfile更改为web:bundleexecthin-Rconfig.rustart-p$PORT我的config.ru文件是root=::File.dirname(__FILE__)require::File.join(root,'web')runMyAp
我正在开发一个只适用于JRuby平台的gem。如何在我的.gemspec中指定它? 最佳答案 你可以简单地输入gemspecspec.platform='java'表示它仅适用于JRuby。具体设置平台可以看一下:RubygemSpecificationReference 关于ruby-如何指定gem仅是JRuby平台?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/189366
对于类似Travian的在线策略游戏,我有一些(我认为)非常棒的想法。有些内容我还没有想通,还有一些我还不知道的挑战。这是一个相当大的项目,对于(还)不是熟练的Web开发人员的人来说可能太重了。我还是想试一试,但我在选择平台时遇到了麻烦。世界上的“规模”最近被抛得一团糟,我看到RubyonRails因规模不佳而受到抨击,所以我来这里是为了得到一些答案。我喜欢RubyonRails,无论是Ruby还是Rails。我当然不是这方面的专家,但我喜欢使用它。我之前也使用过Python+Django,也使用过PHP(我不喜欢它。)理想情况下,假设每个服务器有7000名玩家,大概每秒要处理大量数据
Closed.Thisquestionisopinion-based。它当前不接受答案。想改善这个问题吗?更新问题,以便editingthispost用事实和引用来回答。5年前关闭。Improvethisquestion关于我自己的一些事。我今年24岁,去年从北卡罗莱纳州立大学获得分析学硕士学位。统计,数学之类的东西。我没有很强的编程背景,这对我的问题来说非常重要。如果我说没有任何意义的话,那就是为什么。自从毕业以来,我一直在和其他人一起全职研究Rails应用程序。我的编程经验主要是RubyonRails(1.2年。)我知道R,SAS(统计语言,对这个问题没有帮助。)显然,这意味着它已
我可以在一个Rails应用程序中同时使用MongoDB和PostgreSQL吗?具体来说,我最终会想要使用像MongoHQ这样的东西。到目前为止,我未能在实验中进行这项工作。令我担心的是,MongoDB文档特别指出我必须禁用ActiveRecord。任何建议将不胜感激。 最佳答案 您无需禁用ActiveRecord即可使用MongoDB。查看Mongoid只需将gem加上任何模型与您现有的任何ActiveRecord模型一起添加。您应该注意到MongoHQ只是MongoDB的托管服务,可以与任何对象文档映射器(ODM)一起使用。更多
我必须在mongoid模型中添加几个字段,我知道MongoDB没有迁移,但如果我继续而不删除数据库,使rails完全“重新生成”数据库,它不会显示或使用新的领域!去这里最好的方法是什么?有比删除/重新打开mongodb更软的东西吗?提前致谢卢卡 最佳答案 一般来说,应该可以在运行时用新字段更新旧文档。MongoDB中不需要迁移。您可能想编写rake任务以使用新字段和默认值更新旧文档。您可以通过检查那些默认值为nil的新字段来找到这些文档。更新简单风格:如果您使用默认值定义一个新字段,只要您设置了一个新值,就应该始终使用该值:应用程序