我正在寻找使用带有Amazon SNS和Apple APN推送通知的node.js的示例.我们使用亚马逊进行托管,之前我使用过SNS,非常简单.但是它们用于推送通知的示例是针对java的,并且没有Node的示例.这和他们一样令人困惑,我希望减少我的研究和时间.它不会那么难.我也想知道他们如何处理错误,以及沙盒和生产之间的差异.Apple在两种环境之间做出不同的反应,而不是像生产中那样在沙箱中失败.
amazon-web-services apple-push-notifications node.js amazon-sns
我喜欢Mongoose附带的验证.我们试图弄清楚我们是否想要使用它,并忍受开销.有没有人知道在创建mongoose模式时是否提供对父集合的引用(在子模式中,将父对象的对象id指定为字段),这是否意味着每次您尝试保存文档时检查父集合是否存在refereneced对象id?
在分片的道路上,我们希望能够有多个mongos实例.建议似乎是将mongos放在每个应用程序服务器上.我以为我只是在他们自己的服务器上对它们进行负载平衡,但是这篇文章http://craiggwilson.com/2013/10/21/load-balanced-mongos/表明这有问题.
所以我回到应用程序服务器上.但是,我们正在使用Elastic Beanstalk.我可以在安装程序包上安装Mongo.但是,这会给Mongos带来问题.我无法找到如何让mongos启动使用mongodb.conf文件.对于复制的服务器或配置服务器,conf文件中的其他条目可以使其以我想要的方式启动.但我不能和蒙古人那样做.如果我安装Mongo,它实际上是以mongodb启动的.我需要消除这种行为,并让它以Mongos开始,指向我的配置服务器.
我能想到的只有:
杀死mongodb启动脚本,以"正常"模式自动启动数据库.创建一个启动mongos的新的upstart脚本,指向配置服务器.
有什么想法吗?或者有人知道我是否只是迟钝,我可以将一个新的mongodb.conf文件复制到beanstalk上,它将以mongos的形式启动服务器?
我们并没有计划这样做,但我们需要做一些准备,好像我没有这些部分,我需要在事后完全重建我的beanstalk服务器.在安装了所有软件的情况下,我宁愿准备好部署.
我们需要以特定格式提供续订日期,而不是默认格式.据我所知,没有办法在选项中或任何其他方式设置它.如果没有人在每次检索日期后手动更新日期,那么任何人都可以轻松解决这个问题吗?或者我错过了什么?
我们使用Beanstalk来部署节点应用程序.效果很好.我在.ebextensions目录中创建了几个配置文件,以便在我们加载它们时将配置信息应用到我们的应用程序.再次大多运作良好.我有一件事没有,那就是定义应用程序运行状况检查URL.我不能让它去.关于它的一个奇怪的事情,它似乎只是我到目前为止遇到的参数,其中有空格,我想知道这一点.我已经尝试将值括在引号中,只是为了查看是否存在问题,但它仍然无法正常工作.有没有人以前做过这个,并且可以告诉我它是否有效,以及是否有关于此的语法不正确?正如我所说,其余的参数在beanstalk中正确设置,只是最后一个没有.
这是配置文件:
option_settings:
- namespace: aws:elasticbeanstalk:application:environment
option_name: NODE_ENV
value: #environment#
- namespace: aws:elasticbeanstalk:container:nodejs
option_name: NodeVersion
value: 0.10.10
- namespace: aws:autoscaling:trigger
option_name: LowerThreshold
value: 40
- namespace: aws:autoscaling:trigger
option_name: MeasureName
value: CPUUtilization
- namespace: aws:autoscaling:trigger
option_name: UpperThreshold
value: 60
- namespace: aws:autoscaling:trigger
option_name: Unit
value: Percent
- namespace: aws:elasticbeanstalk:application
option_name: Application Healthcheck URL
value: /load_balance_test
Run Code Online (Sandbox Code Playgroud) 关于它是如何工作的我有点困惑.在对mysql进行分片时,我们有一些表,通常是带有参考数据的小表,在每个分片中都是整数.这是为了启用连接.如果我们在mongo中有小集合,我们不会在分片设置中进行分片,那么它们会发生什么?他们会被送到每个碎片,还是留在第一个碎片?如果在具有许多应用程序服务器的严重分片系统中的所有进程都在一台服务器上进行攻击,这可能会给我带来潜在的瓶颈.
建筑问题。作为游戏的一部分,我们希望跟踪所有玩家已完成的项目数量。跟踪玩家状态没有问题,发电机分片可以很好地跨用户。但是,如果我想要一个数字来显示已处理的 X 数量,那么我谈论的是单行表,这意味着从该表更新和检索的每个人都在完全相同的行上。我很确定 Dynamo 会承担很多这样的任务,但我想知道它的扩展能力如何。当每个人执行一项功能时,计数器会增加,然后他们会读回它。
我想我们可以将计数器保存在 memcache 或 Redis 中,并在新项目被分类时更新它,并在每晚重建它。这似乎有点矫枉过正,并且需要额外的基础设施。
有什么想法吗?有人成功做到这一点吗?Dynamo 会进行跟踪,但他们返回的数字可能已经过时了 6 个小时。
我对这里需要做的事感到困惑.我是Mongo的新手.我在Amazon EC2上设置了一个小型Mongo服务器,带有EBS卷,一个用于数据,一个用于日志.我需要做一个备份.可以在半夜把DB放下来,至少目前是这样.
使用boto库,EBS快照和python进行备份,我构建了一个执行以下操作的简单脚本:
sudo服务mongodb停止运行备份数据运行备份日志sudo服务mongodb启动
脚本运行并重新启动,但我在AWS控制台中注意到快照仍在创建,即使通过boto返回,但Mongo已重新启动.当然不理想.
我查看了Mongo文档,并找到了有关备份操作的解释:
这是一个很好的信息,但有点不清楚.如果您使用的是日记,我们就说:
如果dbpath映射到单个EBS卷,则继续备份数据库文件.
我们有一个数据量.所以,我假设这意味着绕过刷新和锁定的步骤.但在备份数据库文件结束时,它讨论了删除锁.
所以,我有点困惑.当我最初阅读它时,我实际上并不需要做任何事情 - 我可以只运行备份,而不用担心刷新/锁定时间.我可能不需要取下DB.但是我的偏执部分说不,这听起来很可疑.
任何人对此,或经验,或老式知识的任何想法?
我在这个问题上遇到了一些困难,因为我来自于我们根据用户 ID 进行分片的 SQL 环境。我们有多个表,并添加了 user_id,以便我们可以进行分片。如果一张表中有 100 条记录,全部属于同一用户,那么所有 100 条记录最终都会出现在同一个分片中。
因此,我们有了第一个 mongo 数据库,我们希望能够在必要时对其进行分片。有一个用户集合,我们打算按 _id 对其进行分片。那里没问题。但还有第二个集合,其中可能包含一个用户的数百个文档。我们希望它们进入同一个分片(不必与用户文档相同,因为它们是单独检索的,但它们确实由用户分块检索。)但看起来,如果我们通过 user_id 进行分片,该分片已添加到第二个集合中,这还不够,分片键需要是唯一的,因此每次我们进行查找时,我们都会遍历所有分片。这不是最佳的。那么,它是否需要完全唯一,例如每个集合只有一个这样的记录?
文档表明我们遇到了问题。我希望我没有理解。
我对这究竟意味着什么有点困惑.Winston的github页面上有一个"解释",表示你可以退出,或者不退出.这是否意味着Winston对象死亡或停留,或者node.js进程死亡或停留?或完全不同的东西?我找不到任何体面的解释.
我对快照如何作为备份感到困惑。我当前正在运行一个脚本,该脚本每天晚上对mongo数据和日志进行快照。但是我看到的信息说快照是增量的,这使我感到困惑。它们是增量的吗?如果是这样,那是基础,我将如何重设基础?我宁愿每次都拍摄完整的快照。
另外,有人知道自动过期旧快照的方法吗?他们只是不断建立。
mongodb ×6
node.js ×3
sharding ×2
amazon ×1
amazon-ec2 ×1
amazon-sns ×1
boto ×1
mongoose ×1
sequelize.js ×1
snapshot ×1
winston ×1