文章目录
前言
小滴课堂,旨在让编程不在难学,让技术与生活更加有趣。 随着互联网+的时代,在线教育技术越来越便捷,小滴课堂依托在线教育时间以及空间上的便利,为广大IT从业者提供了更为方便、快捷的学习交流途径、提供大量高质量的IT在线课程。更多教程请访问xdclass.net(添加VX:xdclass99)
第1集 账号微服务注册功能业务介绍和代码编写
简介:账号微服务注册接口介绍和业务代码编写
-
微服务注册接口开发
- 请求实体类编写
- controller
- service
- 手机验证码验证
- 密码加密(TODO)
- 账号唯一性检查(TODO)
- 插入数据库
- 新注册用户福利发放(TODO)
- mapper
-
密码存储安全
- 彩虹表暴力破解
- 网站:https://www.cmd5.com/
- 密码存储常用方式
- 双重MD5
- MD5+加盐
- 双重MD5+加盐
- 彩虹表暴力破解
第2集 注册手机号唯一性保证方案和作业-分库分表下的思考
简介:注册手机号唯一性安全保证方案和作业-分库分表下的思考
-
注册业务
- 同个时刻注册,需要保证注册手机号在数据库里唯一
-
高并发下问题发现扩大
- 万分之一的时间,放大100万倍
- 不是你的代码安全,而是你的并发量过少,几个几十个并发量发现不了问题
- 几十万几百万并发 ,线下难模拟
- 代码暂停思维:假如非原子性代码运行到某一行暂停,其他线程重新操作是否会出问题
- 时间扩大思维:1纳秒的时间,扩大到1分钟,代码逻辑是否会有问题
- 类似幂等性处理
-
Redis:先看redis是否有,然后没的话则是新的注册
- key -value 存储, 配置60秒过期
- 非原子性操作,存在不一致
-
数据库唯一索引(建表的时间已经添加)
CREATE TABLE `account` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`account_no` bigint DEFAULT NULL,
`head_img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '头像',
`phone` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '手机号',
`pwd` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '密码',
`secret` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '盐,用于个人敏感信息处理',
`mail` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '邮箱',
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '用户名',
`auth`