文章内容输出来源:拉勾教育Java高薪训练营
本文想通过一个用户登录注册的案例,一步一步的将学习到的SpringCloud的知识点串起来。从简单的需求做起,拆分服务实现业务逻辑。然后再将这个案例分布式化,实现服务的注册与发现、网关配置、服务的远程调用、分布式配置、限流防刷。
接下来,先梳理下这个案例的前期准备:要实现什么样的功能、数据库表的设计、项目的搭建。
1. 案例的业务需求
1.1 注册需求
- 在注册页面上,用户输入邮箱、密码、验证码,进行注册
- 在注册页面上,有一个获取验证码的按钮,点击后,系统则会向邮箱发送验证码邮件
- 注册逻辑中,系统需要校验验证码是否正确、是否过期,用户是否重复注册的情况
- 注册成功,则跳转回登录页面。注册失败则提示相应失败原因
1.2 登录需求
- 在登录页面上,用户输入邮箱、密码,进行登录
- 登录逻辑中,系统需要校验邮箱是否注册、密码是否正确
- 登录成功,则跳转到一个欢迎页面。登录失败则提示相应登录失败原因
- 欢迎页面限制只有登录后的用户才能访问
2. 案例的非业务需求
-
限制用户不能频繁注册
-
限制间隔时长
同一IP的两次注册时间不能过短,最短时间间隔5s -
限制注册次数
同一IP不能注册超过3次
-
-
对用户登录请求进行限流,1秒内不能超过2次请求