Tag: 可伸缩性

如何检查DynamoDB状态,同时chaning WriteUnits吞吐量并等待它完成?

如何等待DynamoDB的活动状态? 我只想升级DynamoDB,而没有其他进程正在缩放/更新表。 因此,我想知道如何查看是否有其他进程正在扩展DynamoDB表? 根据dynamodb.waitFor函数的文档我只能检查tableExists和tableNotExists状态: var params = { TableName: 'STRING_VALUE' /* required */ }; dynamodb.waitFor('tableExists', params, function(err, data) { if (err) console.log(err, err.stack); // an error occurred else console.log(data); // successful response }); 然而,这似乎只有“tableExists”和“tableNotExists”状态,但似乎不允许检查“活动”和“更新”状态? 背景:在一个多工作环境中,每个工作人员都会尝试在达到写入限制的情况下开始高档工作。 在从表中读取当前的预置吞吐量并开始新的缩放操作之前,如何使等待任何缩放/更新完成是必要的。

服务器端应用程序的可伸缩性,最好的方法

我正在编写一个服务器端应用程序来pipe理来自以下方面的请求: 游戏客户端 网站(HTTP请求) API 到目前为止,我只使用一个(NodeJS)应用程序来处理每种types的请求,问题是,随着用户群的不断增长,这种方法将会产生一个瓶颈。 我想就如何开发服务器端的architetture,以便它可以扩展的一些build议。 我知道的唯一的解决scheme是使用多个服务器运行相同的应用程序将共享相同的内存(Redis服务器)。 nodeJS有可能将这些types的请求的pipe理分割成多个服务器吗? 也许一个或多个服务器为每种types的请求? 目前我正在使用: 的NodeJS Redis的 MySQL的 performance Socket.io 在此先感谢,你能推荐一些关于这个问题的书吗?

缩放Socket.IO并向所有归属客户端广播

我在用着 用“connect-redis”会话存储表示 而我通过configuration“授权”与Socket.IO绑定 所以我不必实际使用 socket.get 要么 socket.set 存储和检索客户的归属variables。 但是我不确定,如果我把消息广播给特定的一群人,连接到不同的服务器上,就可以成功地获得消息。 所以这是真正的缩放! 但它似乎并没有真正的缩放,但只使用Redis作为单独的存储值。 另外我试图使用 RedisStore 这是由Socket.IO给出的 不起作用。 这是说 DEBUG: TypeError: Converting circular structure to JSON at Redis.stringify [as pack] (native) at Redis.publish (/var/www/node_modules/socket.io/lib/stores/redis.js:106:31) at Manager.handleClient (/var/www/node_modules/socket.io/lib/manager.js:646:18) at Manager.handleHTTPRequest (/var/www/node_modules/socket.io/lib/manager.js:595:8) at Manager.handleRequest (/var/www/node_modules/socket.io/lib/manager.js:557:12) at HTTPServer.<anonymous> (/var/www/node_modules/socket.io/lib/manager.js:112:10) at HTTPServer.emit (events.js:70:17) at HTTPParser.onIncoming (http.js:1507:12) at HTTPParser.onHeadersComplete (http.js:102:31) at Socket.ondata (http.js:1403:22) […]

比较和比较Node.js和Servlets 3.1非阻塞IO

Node.js使用Javascript的非阻塞性质。 另一方面,Servlets 3.1在Java EE 7中引入了非阻塞IO。 请解释这两者之间的技术上的相似点和差异,就非阻塞和可扩展性而言。

如何devise一个可扩展的RPC呼叫监听器?

我必须听rpc电话,把它们堆在某个地方,处理它们,然后回答。 事情是,他们没有尽快运行。 响应是每个接收到的rpc呼叫的ACK。 问题是,我想要devise一个方法,我可以让许多监​​听服务器在同一个调用堆栈中写入数据,并在它们到来时将它们堆叠起来。 我的目标是听尽可能多的电话。 我应该如何做到这一点? 我的主要技术是Perl和node.js,但会使用任何开源软件来完成这项任务。

使用node.js的100-200k并发用户的Web表单

我需要创build一个Web表单来收集用户数据(调查),预计最高可达100-200k个并发用户,也许更多。 我对RDBMS的Java和PHP解决scheme更具有持久性的经验,在这些平台上,我需要大量的虚拟机和严重的硬件负载分配来处理这种stream量。 由于这可能不符合成本效益,所以我在调用node.js的概念,可能还有消息队列或NoSQL数据存储。 有没有人遇到这个问题,并尝试过类似的解决scheme

什么是当今最先进和可靠的COMET解决scheme?

问题 :每天需要向networking用户提供数百万次的实时通知。 要求: 可扩展性 跨域请求没有代理。 (XHR轮询将不起作用) 跨浏览器支持。 (不能只依靠websockets或flash socket) 经过良好testing和维护的组件 到目前为止,我已经想出了一些解决scheme,有很多限制: RabbitMQ + node.js + Socket.IO 到目前为止,这是我最喜欢的解决scheme,但是当涉及到大量的请求时,有人抱怨node.js部分的可靠性。 plurk.com的体验http://amix.dk/blog/post/19577 XMPP / BOSH + strophe.js 这也看起来可靠,但由于BOSH的限制,JSONP轮询是不可能的,因此 – 没有跨域请求。 Mochiweb + Dojo 据称Facebook使用Mochiweb作为他们的聊天系统(这很吸引人)。 似乎设置和维护过于复杂。 我错了吗? JBoss Netty Java服务器。 这是plurk.com用来提供通知的地方。 目前还不清楚在浏览器端可以使用什么。 Faye + node.js 非常容易设置,但似乎它不适用于重载,没有testing,并没有明确的方法来扩展。 任何想法或经验? 🙂

Node.js的可扩展性是否因高负载下的垃圾收集而受到影响?

尽pipeNode.js是一个相当热门的话题,但我碰巧发现,由于其垃圾收集模型(http://amix.dk/blog/post/19577),Node.js可能不适合实时应用程序。 。 而且,一些基准testing显示,与RingoJS(http://hns.github.com/2010/09/29/benchmark2.html)相比,Node.js响应速度较慢。 目前,Node.js被绑定到V8 JavaScript引擎,它使用世代停止的GC。 那么,当传入的请求很大时Node.js会被破坏吗? 如果有真实的生产数据,那会更好。 谢谢

node.js + socket.io + redis体系结构 – 水平serverscaling套接字连接?

我第一次使用node.js并希望得到一个build议: 我在我的服务器上安装了以下程序: node.js v0.11.3-pre expressionv3.3.4 socket.io v0.9.14 connect-redis v1.4.5 Redis服务器v = 2.6.14 redis-cli 2.6.14 首先,我创build了一个快速应用程序: express testApplication 在创build的“package.json”中,我定义了所有必要的依赖关系。 从一开始,我就在一个名为“cluster.js”的文件中定义了一个用于垂直缩放(多进程)的集群: var cluster = require('cluster'); if( cluster.isMaster ) { var noOfWorkers = process.env.NODE_WORKERS || require('os').cpus().length; console.log("Workers found: " + noOfWorkers); for (var i = 0; i < noOfWorkers; i += 1) { cluster.fork(); } } else { […]

我应该在MongoDB或本地文件系统(由Node.js)中存储图像

我为我的项目使用Node.js。 我应该将图像存储在本地文件系统中,还是应该将其存储在MongoDB中? 哪种方式更具可扩展性?