【发布时间】:2012-11-25 19:14:10
【问题描述】:
如果我要设计一个庞大的分布式系统,其吞吐量应该与系统中的订阅者数量和通道数量呈线性关系,哪个更好?
1) Redis Cluster(仅适用于Redis 3.0 alpha,如果它处于集群模式,您可以在一个节点上发布并在另一个完全不同的节点上订阅,消息会传播并到达您的手中) . Publish 的复杂度是 O(N+M),其中 N 是订阅客户端的数量,M 是系统中订阅模式的数量,但是在 Redis 集群中它如何扩展?我接受有根据的猜测。
2) ZeroMQ 从 3.x 开始,它进行服务器端过滤,所以它也有一些时间复杂度,但我在文档中没有看到任何关于它的信息。如果我想扩展它,我可以让很多服务器发布到任何频道,每个订阅者将连接到所有服务器,并订阅所需的频道。看起来不错。
那么,对于大型发布者系统的横向扩展,哪一个更适合?我应该研究哪些其他解决方案?请记住,我想尽量减少延迟和吞吐量,但要能够水平扩展。
【问题讨论】:
标签: redis publish publish-subscribe zeromq subscription