如果我要设计一个庞大的分布式系统,其吞吐量应与用户数量和系统中的通道数量成线性关系,这会更好吗?
1)Redis Cluster(仅适用于Redis 3.0 alpha,如果它处于群集模式,您可以在一个节点中发布并在另一个完全不同的节点中订阅,并且消息将传播并与您联系).Publish的复杂性是O(N + M),其中N是订阅客户端的数量,M是系统中订阅模式的数量,但是在Redis群集中它如何扩展?我接受有关这方面的有根据的猜测.
2)自3.x以来的ZeroMQ,它进行服务器端过滤,因此它也有一些时间复杂度,但我在文档中没有看到任何关于它的内容.如果我想扩展它,我可以让很多服务器发布到任何通道,每个订户将连接到所有服务器,并订阅所需的通道.这看起来不错.
那么哪一个更适合大型发布者系统的横向扩展?我应该研究哪些其他解决方案?请记住,我希望最小化延迟和吞吐量,但能够水平扩展.
相同的数学运算可以在不同的架构或浏览器中返回不同的结果吗?
我非常肯定这个问题已经解决了,但我找不到任何关于它的信息......
sysadmins如何以编程方式将新节点添加到现有且正在运行的负载均衡器?假设我有一个负载均衡器正在运行并已经在两个EC2实例之间说我的API服务器,突然出现流量峰值,我需要负载均衡器中的第三个节点但是我睡着了...如果我会很好有什么监控可能RAM使用和一些关键性能指标告诉我何时应该有另一个节点,甚至更好,如果它可以单独向负载均衡器添加一个新节点...
我相信这对于node-http-proxy和分发来说是可能的,甚至是微不足道的,但我想知道这是否可以与HAproxy和/或Nginx一起使用......我知道亚马逊的弹性负载平衡可能是我最好的选择,但我想自己做(我想从rackspace,EC2,Joyent和其他人那里生成实例,因为它很方便).
再一次,产生一个节点很容易,我想知道如何将它添加到haproxy.cfg或与Nginx类似的东西,而无需重新加载整个代理,并以编程方式进行.Bash脚本是我最好的选择,但它仍然需要重新加载整个代理,这是坏的,因为它失去了连接...
从我看到的,没有命令,但我需要类似于SISMEMBER命令的东西,但对于有序集.鉴于没有这方面的命令,确定某些东西是否是有序集的成员的最佳方法是什么?也许用ZCORE询问会员的分数,如果没有分数,那么没有会员?
我打开了这个矩阵乘法基准测试,我的浏览器(Firefox 7.0.1)冻结,直到基准测试结束(我在旧的华硕EeePC 1000H中打开了页面).
我听说发明网络工作者是为了将处理与显示网页分开.是否可以利用Web Workers API使WebGL不会停止整个Web浏览器?
下面的代码,在执行时,
true && () => {}
Run Code Online (Sandbox Code Playgroud)
产量
Uncaught SyntaxError: Malformed arrow function parameter list
Run Code Online (Sandbox Code Playgroud)
为什么 ?
编辑:我知道将函数包装在括号中是有效的,谢谢大家,但我想了解为什么解析器不能首先确定它是一个函数。
在NodeJS之上设置的ExpressJS中,我有一些像这样的代码:
app.get('/keys/readresults/:keyname', basic_auth, function(req,res){
res.writeHead(200, {'content-type': 'text/json'});
setInterval(
go_to_database_and_get('stuff', function (database_replies) {
res.write(database_replies)
})
,5000);
});
Run Code Online (Sandbox Code Playgroud)
代码是为了简单而编写的(如果有人想要真正的代码我很乐意将它发布在一些pastebin中).
当我正是我想要发生的事情时会发生什么:我得到一个200状态标题,它检查数据库是否有我想要的结果并将响应写回给我,然后等待5秒并在数据库中搜索新结果并写入再次响应,等等每隔5秒钟.curl -u username:password http://localhost:4000/keys/readresults/key
问题是,当我退出curl时,循环会一直持续下去.如果请求结束,我如何告诉express或nodejs应该结束该循环(我猜是否使用clearInterval)?
我听说PUT和POST请求不应该是流水线的.为什么?
MongoDB还是Redis?
我听说我应该在MongoDB中保留较小的集合以实现更好的索引(以及适合RAM的索引),并且我听说redis"非常快速",但如果你有更大的集合,MongoDB会更好.
如果我拥有数千个哈哈的数千个集合,那么效率最高的是什么?
我问这个是因为在我的项目中,将可用数据用于基准测试还为时过早,我可能会设计糟糕的基准测试脚本,因为我不太了解这两个数据库引擎的理论概念,特别是Redis.
感谢所有回答此问题的人.
javascript ×4
redis ×3
node.js ×2
performance ×2
express ×1
haproxy ×1
html ×1
html-lists ×1
html5 ×1
http ×1
httprequest ×1
indexof ×1
logic ×1
math ×1
mongodb ×1
nginx ×1
nosql ×1
post ×1
proxy ×1
publish ×1
put ×1
regex ×1
request ×1
set ×1
setinterval ×1
subscription ×1
web-worker ×1
webgl ×1
zeromq ×1