1oNflow
V2EX  ›  问与答

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

  •  
  •   1oNflow · Oct 8, 2019 · 1286 views
    This topic created in 2504 days ago, the information mentioned may be changed or developed.

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

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

    1 replies    2019-10-08 16:59:51 +08:00
    haozxuan001
        1
    haozxuan001  
       Oct 8, 2019
    还是需要看实际场景,比如游戏排行榜这样的,毕竟不是所有用户都会放在排行榜这个页面,且终端数太庞大相比较由客户端触发拉取比较合适,比如微信运动这种,每天都必须给你主动推送的场景,你能做的就是尽可能的算快点,不管是加机器也好,队列也罢都只是提高并行处理能力的方式,但结果就是比如我之前都是 10 点 03 分收到消息,现在都是 10 点 07,你只能尽量提前,但客户端庞大后也没有很好的办法
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5553 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 08:24 · PVG 16:24 · LAX 01:24 · JFK 04:24
    ♥ Do have faith in what you're doing.