Articles of 可伸缩性

如果主站closures,如何连接到从站 – 复制

我正在MongoDb中进行数据复制,目前我有一个主节点和多个从节点。 所有这些都运行在不同的端口,但他们可以在不同的机器上(我正在testingatm)。 我的问题是,我将如何去连接这些从我的代码? 目前,我只有一个db类的实例,它连接到localhost上的x端口。 很显然,如果这个节点失败了,我想在本地主机的y端口上使用slave,如果失败的话,在localhost上的z端口。 我应该使用单独的数据库对象进行不同的连接吗?

许多同时连接

我正在聊天应用程序。 底层服务器使用Node.js,客户端/服务器通信通过WebSocket进行。 所以问题是:有多less同时连接可以这样的服务器处理(没有明显的滞后)? 当然大概假设服务器是非常强大的机器。 我知道这不是一个简单的问题来回答,但我只是想想点,一些近似…或至less上下限。 当然我会去做一些实际的testing,但这个理论可能会帮助我一点。 另外我还有一个问题涉及到第一个问题:是否可以将Node.js应用程序拆分为多个机器? 请记住,大部分数据都保存在机器内存中,而不是数据库中。 等待答复。 🙂

node.js让大量的tcp客户端大失所望

我试图从服务器发送一堆tcp客户端。 为了减less响应上的服务器负载,我想分开保持活动。 如果我有3000个tcp客户端,并且60秒保持活跃的时间间隔,那么我需要在60年代错开保持活跃的信息,并且每秒发送50个消息。 假设: 大量的tcp连接(以千计) TCP连接持续存在,预计可以在最less的几个小时内激活 服务器需要在60秒之内知道客户端是否不再连接 来自服务器和客户端的其他信息将被反复发送 保持活着从客户端返回消息包含有用的数据(我认为排除UDP) 目前,我的想法是存储我的TCP连接作为一个标准的JavaScript对象,有一些id映射到一个特定的连接本身。 然后,每秒钟,我得到这个对象的键的数组,并发送保持活跃的一部分这些。 这是一个好方法吗? 有更好的方法还是我应该考虑的其他事情? 我的初始刺戳问题的示例代码: var KEEP_ALIVE_INTERVAL = 1000; // time between groups var KEEP_ALIVE_CYCLE = 3; // number of groups var tcp_conns = { a:"a", b:"b", c:"c", d:"d", e:"e", f:"f", g:"g", h:"h", i:"i" }; var intervalCounter = 0; setInterval(function() { console.log("sending keep alives intervalCounter="+intervalCounter); var […]

DynamoDB在过去24小时内的下滑?

无论如何计算DynamoDB的吞吐量(写单位/读单位)在过去24小时内是如何缩减的? 我的想法是一旦人为下降,例如在需要的configuration写入单元中发生50%的下降。 我真的是高峰stream量。 因此,在每个高峰之后,我认为要缩小比例。 然而,我有一个晚上运行的分析工作,它提供了大量的读取单元,使得在它之后能够降级。 因此,我需要在24小时内将缩减比例限制为3倍。

bluemix运行时:自动垂直可伸缩性?

很明显,自动扩展服务允许水平地自动缩放应用程序。 而且我也可以通过手动增加/减less内存来手动缩放我的应用程序。 有没有办法根据一些规则自动增加和减less与node.js实例关联的内存?

你如何构buildnode.jsdynamicweb服务器? (不通知升级服务器)

我知道node.js服务器caching模块。 所以,在启动服务器之后,所有的文件都会被“编译”,并且所有对代码的更改都可以在重新启动服务器后生效。 但是,如果在网站上总是有数百个用户在线,那么您如何使这些更改(重新启动服务器)的方式让您的数百个客户端不会注意到任何问题,停机? 请给我一些指导和(你自己的)关于(我猜)可扩展性的例子,平衡服务器上的负载等等,所以我可以用node.js制作真棒的大型dynamic网站。

水平缩放在服务器之间共享input的应用程序

我正在构build一个应用程序,通过websocket接受input,这个input必须共享回其他可能连接到其他前端服务器的客户端。 为了简单想象一个多用户多房间聊天应用程序。 让input路由到正确的连接不是一个问题,它是服务器之间的消息传递,并能够扩展并保持消息的延迟。 现在我有一个每个前端连接到的代理程序,然后他们订阅一个队列来查看连接可能需要知道的任何事情。 这样做是为了切断接收来自前端永远不会使用的代理的消息。 不过,我仍然可以获得大约75%到85%的消息从经纪商发回到每个前端。 在旅行中,我正在做消息validation,parsing和任何其他业务逻辑的工作。 在旅途中我循环了本地数组的订阅,并将消息发送到每个订阅的连接。 例如:如果我在11个前端服务器上收到10条消息(总共110条消息 – 10条消息在本地处理,而不是由代理发回)* 0.75乐观预订级别= 75条消息被发送回每个服务器处理。 所以我们有10个本地+75个broker = 85个消息被每个服务器处理一段时间。 现在,我不会有100个每秒100个的前端服务器,也许是两个,但是通过代理程序发回给每个前端服务器的消息似乎会爆炸我通过其他前端服务器收到的更多消息。 代理进程是一个与RabbitMQ和PostgreSQL交谈的小型node.js应用程序。 前端服务器也是node.js应用程序。 我能做什么,或者应该采取不同的措施,以在大批量生产期间保持低延迟? 更新回复用户评论:虽然我期望在队列之间的连接会导致他们的前端服务器订阅,我不认为它是100%的每个服务器的重叠。 最糟糕的情况是,每个前端服务器都必须订阅代理上的每个队列,从而从代理获得100%的消息。 乐观地说,只有大约75%的消息确实需要被发回到任何特定的前端服务器。 itaifrenkel的第二次更新:两个用户发送的消息可能以不同的顺序返回。 只有在延迟非常低的情况下才可以接受,而且只有在发送的消息非常接近时才会发生。 如果它发生的消息秒分开,那么我会说我们有一个延迟和规模的问题。 有一种情况我们需要显示一个历史logging,但是由于我觉得这个问题超出了问题的范围,所以我把这个logging留下了。

多用户应用程序同时具有〜200,000个连接

嗨Stackoverflow社区! 我负责一个将收集至less20万观众的事件的后端。 他们都可以参与一个非常简单的Q / A游戏,无论是使用移动应用程序或SPA网站。 没有这么多同时使用的用户的经验,我想知道哪种数据库,语言和服务器我应该用我的后端。 我在Node.js,MongoDB和socket.io方面有以前的经验,总是用小的项目,并且正在使用它们,但是我周围的一些人告诉我这些技术不能处理如此多的用户,并且可能会丢失一些数据包,甚至崩溃。 如果有更多的经验在这个领域有经验的人可以给我关于这个问题的build议,那将是非常棒的! 非常感谢所有! grebett

MongoDB新闻源模式devise

目前,我正在为Microsoft Azure移动服务上的Instagram类应用程序开发node.js移动后端。 我决定使用MongoDB并开始编码。 但是当我读到MongoDB模式devise的时候,我总是会结束的; “我做对了吗”。 这就是为什么我在这里。 潜入技术问题; 现在我有一个这样的简化的用户模型 ; { _id : "userId1" , username : "username", following : ["userId2","userId3" …], } 而像这样的简化的媒体模式 ; { _id : "mediaId" , mediaUrl : "mediaUrl", author : { _id : "userId1", userName : "username" } } 因此,当我尝试基于用户获取新闻源时 ,我所要做的就是检索following数组以获取以下用户标识,并通过索引media.author._id在媒体集合中使用$in操作符执行查询 问题是; 1.在考虑百万规模时,这种方法对我来说会是一个问题吗? 2.这种情况下最好的方法是什么? (还会有另外一个基于坐标的聚合查询,如计数等) 现在,我的后续build筑就像 保留用户文档中引用的以下用户标识。 还要保持关系在一个名为如下的集合中。 (followeeId,followerId)这种方法最适合这种情况吗? 第三个问题是可选的:P 向你们致以问候和感谢。 […]

典型Web应用程序中的Node.js可伸缩性

由于Node.js初学者来自Enterprise IT,我无法理解node.js用法的一个方面。 我正在两个部分构思我的问题。 问题1)严格来说,从可伸缩性的angular度来看,I / O沉重的Web应用程序如何使用node.js进行扩展,除非我们缩减它所消耗的后端I / O资源? 数据库服务器只能提供“X”个并发用户。 即使基于节点的HTTP服务器能够处理更多的传入请求,整体吞吐量也将由数据库可处理的并发连接数决定。 同样适用于其他企业资源,例如从文件服务器进行内容检索或调用传统API等。据我所知,我们不太担心可以弹性扩展且不在我们的直接权限范围内的云资源。 问题2)如果对上述问题的回答是“ 节点不是一刀切的解决scheme ”,像PayPal,Walmart,LinkedIn等公司如何能够通过节点获得规模? 他们也将整合到他们现有的系统环境中,而不是完全基于networking的应用程序(或者他们?)。