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

2015-11-01 08:10:42 +08:00
 li24361

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

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

不然 mysql 会因为长时间没有释放,导致脚本崩溃。
beneo
2015-11-02 08:28:46 +08:00
云片,不是广告
caixiexin
2015-11-02 09:18:19 +08:00
看样子不是直接对接运营商的接口?
不用缓存的话,数据库做待发送池,程序异步取数据发送。
数据库保存短信详细业务数据的地方和待发池数据分开保存
另外要看对方提供的接口允许批量不,要是这个接口一次只能送一条就蛋疼了。还有就是发出去之后自己平台要接受状态报告吗?要接受报告的话量大以后也是个很大的问题。
perpyy
2015-11-02 09:22:26 +08:00
目前 5000 条 /秒~
crayhuang
2015-11-02 10:35:24 +08:00
队列~

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

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

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

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

© 2021 V2EX