注册之获取短信验证码
功能:短信发送,邮件发送
所用技术:Redis,Mq,Java mail ,HttpClient,阿里大鱼
一般在我们点击发送验证码的时候会有一下这三点
1:在HTML页面中我们获取手机号
2:在这之前我们要用正则去检验是否格式正确
3:然后发送Ajax到后台进行获取验证发送
然后我们在后台就会接受到手机号码?
1:用随机数Random生成验证码,
随机验证码String code = GetRandomCodeUtil.getCode();
2:以手机号为Key,验证码为值,存入Redis中
// 将验证码保存到redis,设置24小时失效redisTemplate.opsForValue().set(telephone,code, 24,TimeUnit.HOURS);
3:将手机号和验证码放入Mq中
ActiveMQMapMessage mapMessage = new ActiveMQMapMessage();mapMessage.setString("telephone",telephone);mapMessage.setString("code",code);this.jmsMessagingTemplate.convertAndSend(this.queue,mapMessage);
然后我们用消费者去监听消费生成着产生的消息
1:监听同一名的消息队列
队列名字 | 入队数量 | 出队数量 |
---|---|---|
xxxx | 1 | 1 |
1 queue队列:一个生产者对应多个消费者,一个消息只能被消费一次;topic广播模式一个消息可以被消费多次
2:取出telephone和code
String code= redisTemplate.opsForValue().get(telephone);
3:用阿里大鱼去发送短信
SmsUtil.sendSms(student.getPhone(),code);
MQ的学习在下 一篇中。