小编Joã*_*imo的帖子

对于水平扩展的分布式系统,Redis Cluster vs Pub/Sub中的ZeroMQ

如果我要设计一个庞大的分布式系统,其吞吐量应与用户数量和系统中的通道数量成线性关系,这会更好吗?

1)Redis Cluster(仅适用于Redis 3.0 alpha,如果它处于群集模式,您可以在一个节点中发布并在另一个完全不同的节点中订阅,并且消息将传播并与您联系).Publish的复杂性是O(N + M),其中N是订阅客户端的数量,M是系统中订阅模式的数量,但是在Redis群集中它如何扩展?我接受有关这方面的有根据的猜测.

2)自3.x以来的ZeroMQ,它进行服务器端过滤,因此它也有一些时间复杂度,但我在文档中没有看到任何关于它的内容.如果我想扩展它,我可以让很多服务器发布到任何通道,每个订户将连接到所有服务器,并订阅所需的通道.这看起来不错.

那么哪一个更适合大型发布者系统的横向扩展?我应该研究哪些其他解决方案?请记住,我希望最小化延迟和吞吐量,但能够水平扩展.

publish subscription publish-subscribe zeromq redis

17
推荐指数
1
解决办法
7797
查看次数

Javascript性能:如何循环遍历数组并检查每个值比indexOf,搜索和匹配更快?

这对我来说是一个巨大的惊喜,我想了解这个结果.我在jsperf中做了一个测试,它基本上应该带一个字符串(这是我想要检查的URL的一部分)并检查是否存在4个项目(实际上,它们存在于字符串中).

它以5种方式检查:

  1. 普通指数;
  2. 拆分字符串,然后indexOf;
  3. 正则表达式搜索;
  4. 正则表达式匹配;
  5. 拆分字符串,循环遍历项目数组,然后检查它们中的任何一个是否匹配它应该匹配的内容

令我惊讶的是,排名第五的是Chrome 21中最快的.这是我无法解释的.

在Firefox 14中,普通的indexOf是最快的,我能相信的.

javascript regex performance indexof performance-testing

16
推荐指数
1
解决办法
2663
查看次数

Javascript中浮点数的精度可以成为非确定性的来源吗?

相同的数学运算可以在不同的架构或浏览器中返回不同的结果吗?

javascript math non-deterministic

13
推荐指数
2
解决办法
1352
查看次数

以编程方式将节点添加到负载均衡器,如Haproxy?

我非常肯定这个问题已经解决了,但我找不到任何关于它的信息......

sysadmins如何以编程方式将新节点添加到现有且正在运行的负载均衡器?假设我有一个负载均衡器正在运行并已经在两个EC2实例之间说我的API服务器,突然出现流量峰值,我需要负载均衡器中的第三个节点但是我睡着了...如果我会很好有什么监控可能RAM使用和一些关键性能指标告诉我何时应该有另一个节点,甚至更好,如果它可以单独向负载均衡器添加一个新节点...

我相信这对于node-http-proxy分发来说是可能的,甚至是微不足道的,但我想知道这是否可以与HAproxy和/或Nginx一起使用......我知道亚马逊的弹性负载平衡可能是我最好的选择,但我想自己做(我想从rackspace,EC2,Joyent和其他人那里生成实例,因为它很方便).

再一次,产生一个节点很容易,我想知道如何将它添加到haproxy.cfg或与Nginx类似的东西,而无需重新加载整个代理,并以编程方式进行.Bash脚本是我最好的选择,但它仍然需要重新加载整个代理,这是坏的,因为它失去了连接...

proxy reverse-proxy load-balancing nginx haproxy

12
推荐指数
2
解决办法
5369
查看次数

如何确定某些东西是否是有序集的成员?

从我看到的,没有命令,但我需要类似于SISMEMBER命令的东西,但对于有序集.鉴于没有这方面的命令,确定某些东西是否是有序集的成员的最佳方法是什么?也许用ZCORE询问会员的分数,如果没有分数,那么没有会员?

set html-lists redis

11
推荐指数
1
解决办法
2788
查看次数

在Web Worker中使用WebGL:有可能吗?怎么样?

我打开了这个矩阵乘法基准测试,我的浏览器(Firefox 7.0.1)冻结,直到基准测试结束(我在旧的华硕EeePC 1000H中打开了页面).

我听说发明网络工作者是为了将处理与显示网页分开.是否可以利用Web Workers API使WebGL不会停止整个Web浏览器?

html html5 web-worker webgl

10
推荐指数
2
解决办法
4814
查看次数

为什么“true && () => {}”会产生“Uncaught SyntaxError: Malformed arrow function parameter list”?

下面的代码,在执行时,

true && () => {}
Run Code Online (Sandbox Code Playgroud)

产量

Uncaught SyntaxError: Malformed arrow function parameter list
Run Code Online (Sandbox Code Playgroud)

为什么 ?

编辑:我知道将函数包装在括号中是有效的,谢谢大家,但我想了解为什么解析器不能首先确定它是一个函数。

javascript logic logical-operators node.js

10
推荐指数
1
解决办法
9893
查看次数

ExpressJS:如何知道请求何时完成?

在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)

javascript setinterval node.js express

9
推荐指数
2
解决办法
5718
查看次数

流水线PUT和/或POST请求的缺点是什么?

我听说PUT和POST请求不应该是流水线的.为什么?

post http put request httprequest

9
推荐指数
1
解决办法
1291
查看次数

什么是最有效的面向文档的数据库引擎来存储数千个中等大小的文档?

MongoDB还是Redis?

我听说我应该在MongoDB中保留较小的集合以实现更好的索引(以及适合RAM的索引),并且我听说redis"非常快速",但如果你有更大的集合,MongoDB会更好.

如果我拥有数千个哈哈的数千个集合,那么效率最高的是什么?

我问这个是因为在我的项目中,将可用数据用于基准测试还为时过早,我可能会设计糟糕的基准测试脚本,因为我不太了解这两个数据库引擎的理论概念,特别是Redis.

感谢所有回答此问题的人.

performance mongodb nosql redis

8
推荐指数
1
解决办法
6263
查看次数