如果我要设计一个庞大的分布式系统,其吞吐量应与用户数量和系统中的通道数量成线性关系,这会更好吗?
1)Redis Cluster(仅适用于Redis 3.0 alpha,如果它处于群集模式,您可以在一个节点中发布并在另一个完全不同的节点中订阅,并且消息将传播并与您联系).Publish的复杂性是O(N + M),其中N是订阅客户端的数量,M是系统中订阅模式的数量,但是在Redis群集中它如何扩展?我接受有关这方面的有根据的猜测.
2)自3.x以来的ZeroMQ,它进行服务器端过滤,因此它也有一些时间复杂度,但我在文档中没有看到任何关于它的内容.如果我想扩展它,我可以让很多服务器发布到任何通道,每个订户将连接到所有服务器,并订阅所需的通道.这看起来不错.
那么哪一个更适合大型发布者系统的横向扩展?我应该研究哪些其他解决方案?请记住,我希望最小化延迟和吞吐量,但能够水平扩展.