消息队列用来向所有在线用户广播“系统后台数据有更新”这一消息是合理的用法吗?

2019-10-08 16:35:16 +08:00
 1oNflow

构想一个应用场景,系统后台有类似用户排名的数据,数据有少量变化时不需要实时向用户展示更新,但是如果大量变化在某一时段集中出现,后台自动触发更新排名的计算(这个计算比较复杂,如果大量请求服务器压力比较大,所以服务器先全部用户算一遍,然后结果存起来),然后向消息队列发送一个“数据有更新”的消息,所有在线用户都会通过 websocket 订阅消息队列服务器的 fanout 频道,收到这个消息后前端会提醒用户数据已经过时了,用户可以选择向后端请求更新。

不知道这个场景使用消息队列是合理的吗?(考虑到应该可以减少向后端查询计算的频次,数据更新变成异步操作)

850 次点击
所在节点    问与答
1 条回复
haozxuan001
2019-10-08 16:59:51 +08:00
还是需要看实际场景,比如游戏排行榜这样的,毕竟不是所有用户都会放在排行榜这个页面,且终端数太庞大相比较由客户端触发拉取比较合适,比如微信运动这种,每天都必须给你主动推送的场景,你能做的就是尽可能的算快点,不管是加机器也好,队列也罢都只是提高并行处理能力的方式,但结果就是比如我之前都是 10 点 03 分收到消息,现在都是 10 点 07,你只能尽量提前,但客户端庞大后也没有很好的办法

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

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

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

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

© 2021 V2EX