V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiaomada
V2EX  ›  程序员

两台机器怎么维护同一个队列?

  •  
  •   xiaomada ·
    tangzhangming · 2023-02-18 22:16:47 +08:00 · 1204 次点击
    这是一个创建于 449 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们通常会使用环形数组或者链表来实现消息队列,那么假设,我某一个队列运行的服务器只有 32G 内存,而我的这个队列因为消息堆积达到了 32G 内存的占用量,或者同一台机器上多个队列的内存占用总和达到机器内存总量。

    这种情况下,解决方案似乎只有拒绝插入新数据,或者就是多台机器维护同一个队列,如果想要用两台机器维护同一个队列该怎么设计实现比较好?

    maggch97
        1
    maggch97  
       2023-02-18 23:32:48 +08:00
    虽然但是,分布式消息队列不是有很多?
    FrankAdler
        2
    FrankAdler  
       2023-02-19 01:57:33 +08:00
    参考现有的分布式消息队列:分片、分区的概念
    documentzhangx66
        3
    documentzhangx66  
       2023-02-19 18:15:25 +08:00
    你的业务所产生的消息队列的数据,真的会撑满 32G 内存?就算 32G 不是文字数据,全是图片数据,非大厂业务,也可以支撑一段时间。

    建议检查一下你的策略,特别是那些在一定时间内,没被消费的数据,是否真有必要还让它耗在物理内存里。

    如果有必要,建议增加 SSD 作为中间缓存。

    如果一定要增加内存,给单机添加内存,会比上双机的方案要好得多。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2815 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:27 · PVG 23:27 · LAX 08:27 · JFK 11:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.