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

2023-02-18 22:16:47 +08:00
 xiaomada

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

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

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

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

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

如果一定要增加内存,给单机添加内存,会比上双机的方案要好得多。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/917242

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX