• 请不要在回答技术问题时复制粘贴 AI 生成的内容
cqsc
V2EX  ›  程序员

请教一下关于 App 消息推送的一些问题?

  •  
  •   cqsc · Jan 27, 2021 · 2252 views
    This topic created in 1934 days ago, the information mentioned may be changed or developed.

    小弟最近刚结束实习,实习期间负责的项目使用到了 MQTT 协议,对消息推送挺感兴趣的,所以有些问题想请教下各位大佬。想问下如果需要实现可一个高并发、高可用的消息代理服务器需要怎样的理论和技术的支撑?

    如果需要像大量用户推送即时消息( IM ),如何尽可能的减小消息的延迟(即尽可能保证每个用户收到的消息时间间隔不会过大)?

    5 replies    2021-01-28 05:26:50 +08:00
    securityCoding
        1
    securityCoding  
       Jan 27, 2021
    https://github.com/mpusher/mpush
    看看这个项目,很成熟了
    asAnotherJack
        2
    asAnotherJack  
       Jan 27, 2021
    之前做过推送,高并发问题用 mq,延迟问题说白了就是尽快把消息交给第三方厂商(小米、极光、个推什么的),最简单的方式加机器,加消费者,紧接着瓶颈会转移到 db 查 token,这里当时是通过批量查询优化的,效果很可观,再接下来瓶颈就到了厂商的限速上了,可以考虑同时接多个厂商,以及和厂商沟通提高限速,极光的话有批量推的接口。
    不知道你做的推送是自己从底层实现,还是接三方厂商,我上边说的是接三方厂商的
    cqsc
        3
    cqsc  
    OP
       Jan 27, 2021
    @asAnotherJack PUSH 推送是调用的第三方 SDK,目前打算写一个推送服务的统一调用接口,并提供平台给管理员使用。
    另外有个问题想问下大佬,即时消息(比如像淘宝 App 的商家对话)一般需要写入数据库吗。因为感觉如果是持久化到 DB 的话,可以直接用 MQ 异步写入数据库然后用户打开 APP 自动获取即可,或者说利用 MQTT 等应用层协议保证消息可达,然后用户启动 APP 获取消息并缓存到本地?
    jimrok
        4
    jimrok  
       Jan 27, 2021
    你需要知道 tcp/ip 的基础知识,c10k 问题,epoll,如果你做群集方案,你还要补一下 MIT 分布式系统课程,此外还需要杂七杂八的一些知识。
    cqsc
        5
    cqsc  
    OP
       Jan 28, 2021
    @jimrok 谢谢大佬!如果是准备应届生面试的话,实现一个单体的消息系统可以作为项目经历吗?分布式的内容暂时还没有深入学习,暂时还不能应用 TAT
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2897 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 15:00 · PVG 23:00 · LAX 08:00 · JFK 11:00
    ♥ Do have faith in what you're doing.