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

你们系统的短信发送,是怎么设计的,可以承受多少并发?

  •  
  •   north521 · Nov 1, 2015 · 7190 views
    This topic created in 3930 days ago, the information mentioned may be changed or developed.

    不考虑运营商发送时间,就只是系统到他们平台

    21 replies    2015-11-02 18:55:21 +08:00
    loading
        1
    loading  
       Nov 1, 2015
    队列
    tanteng
        2
    tanteng  
       Nov 1, 2015
    直接调用服务提供商接口,不考虑并发吧,并发是服务商要考虑的
    north521
        3
    north521  
    OP
       Nov 1, 2015
    @tanteng 老系统,是把短信插到一个表里面,然后发送,修改为直接调用接口的话,要改很多地方
    xenme
        4
    xenme  
       Nov 1, 2015
    反正是调用服务商的接口,你直接狂发呗。
    gt11799
        5
    gt11799  
       Nov 1, 2015
    用 Python 写的话,用 celery 做异步就行了。
    baiyuxiong
        6
    baiyuxiong  
       Nov 1, 2015 via iPhone
    @tanteng 调接口也需要时间,做成同步的肯定不好方案。用 redis 队列,单独一个应用监听队列发短信
    billwang
        7
    billwang  
       Nov 1, 2015
    运营商肯定也会设定一个接口的发送时间间隔或者一段时间内短信发送量,多了人家就不给你发了。除非用联通自己的预留的接口
    Soar360
        8
    Soar360  
       Nov 1, 2015
    短信网关。把要发的任务提交给网关,网关自己根据任务量和任务特性(通知、验证码还是别的)调用不同的平台发送。。
    wshcdr
        9
    wshcdr  
       Nov 1, 2015
    一般的短信 SP 提供的能力为每个通道, 3 条 /秒
    realpg
        10
    realpg  
       Nov 1, 2015
    直连运营商的系统, 95 条每秒,超过 100 直接屏蔽接口 30 秒。
    用轮询系统去刷数据库队列,发送成功改状态。
    开发端只写数据库的待发表,不处理发送逻辑。
    zz412000428
        11
    zz412000428  
       Nov 1, 2015
    队列推送给运营商
    GitFree
        12
    GitFree  
       Nov 1, 2015
    验证码发送服务, celery 消息队列实现,压测(当然发短信部分做了模拟处理,不然就要卷铺盖走人了)发送并发能达到 2000qps
    GitFree
        13
    GitFree  
       Nov 1, 2015
    @tanteng 那是并发不够高,高并发场景下的情况下调用服务商的 100+ms 是不能忍受的,连接数很快会耗尽的
    akira
        14
    akira  
       Nov 1, 2015
    这个是看对方平台的限制的呀
    zhangv
        15
    zhangv  
       Nov 1, 2015
    队列、异步处理。
    实时性主要还是短信通道的问题。
    konakona
        16
    konakona  
       Nov 2, 2015
    队列。
    说到队列,我被 ThinkPHP 弄哭了..
    =。=
    现在在研究怎么样用它的 CLI 模式下,能够每个循环之后立刻释放模型...
    没看到有,除了$this->db->close(),但是这样一来-..- 怎么开呢,还在进一步研究。

    不然 mysql 会因为长时间没有释放,导致脚本崩溃。
    beneo
        17
    beneo  
       Nov 2, 2015
    云片,不是广告
    caixiexin
        18
    caixiexin  
       Nov 2, 2015
    看样子不是直接对接运营商的接口?
    不用缓存的话,数据库做待发送池,程序异步取数据发送。
    数据库保存短信详细业务数据的地方和待发池数据分开保存
    另外要看对方提供的接口允许批量不,要是这个接口一次只能送一条就蛋疼了。还有就是发出去之后自己平台要接受状态报告吗?要接受报告的话量大以后也是个很大的问题。
    perpyy
        19
    perpyy  
       Nov 2, 2015
    目前 5000 条 /秒~
    crayhuang
        20
    crayhuang  
       Nov 2, 2015
    队列~
    tanteng
        21
    tanteng  
       Nov 2, 2015
    @baiyuxiong 嗯,有道理
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3154 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 11:01 · PVG 19:01 · LAX 04:01 · JFK 07:01
    ♥ Do have faith in what you're doing.