如何大量请求发送短信接口?

2022-03-10 10:38:33 +08:00
 Jekins

客户提供的短信接口没有批量发送短信的接口..目前是在循环里去直接 http 请求(根据返回状态判断短信是否发送成功).这样做肯定不行的.目前项目还未上线..所以还没有想到一个比较好的解决办法...使用 CompletableFuture 虽然不会阻塞...但是对面的 api 肯定会防止刷 api 限流...有老哥解决过类似需求吗?

3748 次点击
所在节点    Java
27 条回复
giiiiiithub
2022-03-10 10:46:27 +08:00
这个。。。既要大量请求,又要防限流。。。。矛盾了。还是问问对面吧。

另外 CompletableFuture 提供的只是异步接口,但是 io 会不会阻塞主要看用的是 bio 还是 nio 还是 aio
ali727
2022-03-10 10:46:59 +08:00
换接口?
Jekins
2022-03-10 10:49:25 +08:00
@giiiiiithub 我开发经验不足.谢谢老哥回复解答.
Jekins
2022-03-10 10:50:02 +08:00
@ali727 额..我也想.客户提供的,没法改...
RedBeanIce
2022-03-10 10:52:44 +08:00
他们设计的接口有问题啊。

根据现在的情况,你只能开启多线程去调用然后 get 阻塞???这样子好难
应该他们回调你们接口,会好一点,,,这样子阻塞太难了,,建议他们改接口,他们的错误,我们不背锅
Jekins
2022-03-10 10:54:21 +08:00
@RedBeanIce 感谢老哥回复. 我以为会有排队请求 api 这种方案的...
chawuchiren
2022-03-10 11:03:52 +08:00
延迟队列?
zzfer
2022-03-10 11:11:54 +08:00
排队请求不久是队列吗
Xusually
2022-03-10 11:20:44 +08:00
不行就自己维护队列呗
IvanLi127
2022-03-10 11:23:41 +08:00
问清楚对面这个功能是不是要循环调用这个接口。是的话就这样调咯,有限流就卡着限制做呗,慢慢循环完就是了。他们不急你急啥,是吧
aofall
2022-03-10 11:26:54 +08:00
引入队列中间件 rocketmq 之类的?
Kyle18Tang
2022-03-10 11:30:19 +08:00
DelayQueue?
murmur
2022-03-10 11:31:28 +08:00
你们的接口太辣鸡,就现在发广告的速度,大规模短信接口不是问题,经费没到位
ytmsdy
2022-03-10 14:45:50 +08:00
先把请求接收进来,然后数据丢到 redis 里面慢慢处理。丢进去之前先看看 10 分钟以内有没有发送过,如果有就直接丢错给前端,如果没有,那就进队列慢慢排队。
coderJie
2022-03-10 14:50:38 +08:00
用队列排队发送请求啊
dorothyREN
2022-03-10 14:56:29 +08:00
我有批量的接口,但是只能相同内容
westoy
2022-03-10 14:57:26 +08:00
对方要针对 app id 和 IP 双重限流你玩出花儿也没效果, 而且你也没法保证对方不偷量啊

找对方商务谈再开个限制放开的接口啊

没得谈就再引入一个供应商
sampeng
2022-03-10 18:08:27 +08:00
短信供应商遍地都是的。。。你偏偏吊死在一个连大量发短信都做不到的供应商上。。。
sampeng
2022-03-10 18:11:16 +08:00
但是你这个肯定会限流的结论怎么得到的?是客户说的?还是你猜的?人家就不能收到一个请求,自己放自己队列里么。。。为啥会不行?我们连 aws 和阿里云发短信都是循环循环里面直接调 sdk ,同样是一条一条发的,他限不限流和你没关系,你要做的只是限流的时候你别崩溃和出现其他问题。你压根就不用考虑他会不会挂
jamsfox
2022-03-10 18:17:49 +08:00
可以了解下时间轮能不能满足你们的需求

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

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

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

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

© 2021 V2EX