当前位置: 首页 > 面试题库 >

对于水平扩展的分布式系统,Ppub / Sub中的Redis群集与ZeroMQ

海景曜
2023-03-14
问题内容

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

1) Redis群集 (仅适用于Redis 3.0
alpha,如果它处于群集模式,则可以在一个节点上发布并在另一个完全不同的节点上订阅,消息将传播并到达您)。发布的复杂度为 O(N + M)
,其中N是已订阅客户端的数量,M是系统中已订阅模式的数量,但是在Redis集群中,它如何扩展?我接受对此的有根据的猜测。

2)从3.x开始, ZeroMQ进行
服务器端过滤,因此那里也有一些时间复杂性,但是我在文档中没有看到任何有关它的信息。如果要扩展它,我可以让许多服务器发布到任何频道,每个订户将连接到所有服务器,并订阅所需的频道。好像很好

那么,哪种方法更适合大型发布者系统的横向扩展?我还应考虑哪些其他解决方案?记住,我想最小化延迟和吞吐量,但是能够水平扩展。


问题答案:

我想您想使延迟最小化。通道数无关。关键因素大致是发布者和订阅者的数量,消息大小,每个发布者每秒的消息数,每个订阅者接收的消息数。ZeroMQ每秒可以从一个节点到另一节点处理几百万条小消息;在成为软件之前,您的瓶颈将是网络。因此,大多数高容量的pubsub架构都使用ZeroMQ支持的PGM组播之类的东西。



 类似资料:
  • 原文在:http://www.aosabook.org/en/distsys.html Kate Matsudaira 开源软件如今已成为最大的一些网站的基础组件。随着这些网站的发展,围绕它们的架构出现了许多最佳实践与指导原则。本章将试图阐述设计大规模网站时要考虑的一些关键问题,以及用于实现这些目标(???疑有误)的一些组件。 本章主要讲Web系统,虽然一些内容也适用于其他分布式系统。 1.1 W

  • Kubernetes是一个高度开放可扩展的架构,可以通过自定义资源类型CRD来定义自己的类型,还可以自己来扩展API服务,用户的使用方式跟Kubernetes的原生对象无异。

  • 集群策略插件化 分布式集群策略采用插件的方式实现,通过SPI的形式发布,通过配置文件激活。 zookeeper分布式策略

  • 扩展说明 当有多个服务提供方时,将多个服务提供方组织成一个集群,并伪装成一个提供方。 扩展接口 org.apache.dubbo.rpc.cluster.Cluster 扩展配置 <dubbo:protocol cluster="xxx" /> <!-- 缺省值配置,如果<dubbo:protocol>没有配置cluster时,使用此配置 --> <dubbo:provider cluster="

  • 本文向大家介绍浅谈Redis在分布式系统中的协调性运用,包括了浅谈Redis在分布式系统中的协调性运用的使用技巧和注意事项,需要的朋友参考一下 在分布式系统中,各个进程(本文使用进程来描述分布式系统中的运行主体,它们可以在同一个物理节点上也可以在不同的物理节点上)相互之间通常是需要协调进行运作的,有时是不同进程所处理的数据有依赖关系,必须按照一定的次序进行处理,有时是在一些特定的时间需要某个进程处

  • 我有一个redis集群,有主服务器、从服务器和3个哨兵服务器。主从映射到dns名称node1-redis-dev.com、node2-redis-dev.com。redis服务器版本为2.8 我在application.properties文件中包含以下内容。 但是,当我检查StringRedisTemplate时,在JedisConnectionFactory的hostName属性下,我看到的是