Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
175 views
in Technique[技术] by (71.8m points)

关于MQ的使用,有一点想不明白

在做用户注册的时候涉及到短信发送的服务,去网上查了查相关资料,发现大部分逻辑是这样的:
1.前端点击发送短信按钮
2.注册接口生成随机验证码缓存到Redis和MQ
3.短信接口从MQ获取信息并发送短信

这里我有一个疑问:
按照大多数逻辑来说当注册服务发送验证码以及手机号等信息给MQ之后应该已经返回给前台消息发送成功了,但是如果这个时候短信服务挂掉了或者说运营商那边出问题了,应该怎么办?而且MQ存在是为了解耦和异步,那这样并没有体现出来呀?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

不考虑本地流程,短信在运营商那也是异步,不保证用户能收到,这里出错的原因可能很多,如:关机,欠费,无信号,用户电信黑名单,用户端软件拦截等等。发短信出错的环节不可胜数。从而基本上无法做到得到真正的发送成功的反馈。

发送成功了,仅是前端处理了,不意味着收到成功了。

怎么办?所以才都要设计各种重发的功能。

MQ为了解耦和异步?不已经是这样了吗?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...