- 博客(10)
- 收藏
- 关注
原创 5.7 分布式状态管理
再用vim进行配置(视频7:30左右)指定配置文件启动redis 之前我们用session存储用户的登录信息,都存在于controller层中,现在要用redis来代替,如下,之前用session暂存的验证码,现在用的是redis来存:同样的获取验证码的操作,之前是从session中获取,现在从redis中获取,如下:类似于MySQL中的事务,Redis中的事务有4个关键字:IO多路复用底层机制:一个线程去监听socket这四个状态,只有当socket处于连接、关闭、写入、读取这四个状态的时候,socket
2022-06-03 20:47:37 269
原创 5.6 项目部署与压测
流程:100件商品 -----> 下单 ------> 付款我们的项目是在下单的时候进行的扣减库存,实际项目有的是在付款的时候进行扣减库存下单的时候扣减库存:会存在少卖的问题(因为有的人下单了,未付款,导致100件商品只卖出去80件),但不存在超卖的问题(也就是不可能100件商品,卖了120件)我们项目只解决了下单时的并发承载问题,没有再深入解决付款的问题视频24分钟处order_info订单表:订单以后会非常的庞大,所以要将历史订单卸载出去,所以表设计时,将id设置成年月日开头+商品流水号,为了方便将来做
2022-06-03 20:47:00 308
原创 5.5 用户下单与秒杀
流程:100件商品 -----> 下单 ------> 付款我们的项目是在下单的时候进行的扣减库存,实际项目有的是在付款的时候进行扣减库存下单的时候扣减库存:会存在少卖的问题(因为有的人下单了,未付款,导致100件商品只卖出去80件),但不存在超卖的问题(也就是不可能100件商品,卖了120件)我们项目只解决了下单时的并发承载问题,没有再深入解决付款的问题视频24分钟处order_info订单表:订单以后会非常的庞大,所以要将历史订单卸载出去,所以表设计时,将id设置成年月日开头+商品流水号,为了方便将来做
2022-06-03 20:46:08 214
原创 5.4 商品列表与详情
工具 如下图是没有走索引的SQL语句:下图用到主键索引:索引分类:普通索引、唯一索引、全文索引(一般使用ElasticSearch)、空间索引存储方式:B-Tree(Innodb使用B+树)、Hash数据分布:聚簇索引(指的是把数据和索引聚在一起,直接都存到叶子节点)、二级索引回表情况:覆盖索引(或叫索引覆盖)覆盖索引的定义:索引覆盖就是一个SQL在执行时,可以利用索引来快速查找,并且此SQL所要查询的字段在当前索引对应的字段中都包舍了,那么就表示此SQL走完索引后不用回表了,所需要的字段都在当前索引的叶
2022-06-03 20:45:32 157
原创 5.4 商品列表与详情
工具 如下图是没有走索引的SQL语句:下图用到主键索引:索引分类:普通索引、唯一索引、全文索引(一般使用ElasticSearch)、空间索引存储方式:B-Tree(Innodb使用B+树)、Hash数据分布:聚簇索引(指的是把数据和索引聚在一起,直接都存到叶子节点)、二级索引回表情况:覆盖索引(或叫索引覆盖)覆盖索引的定义:索引覆盖就是一个SQL在执行时,可以利用索引来快速查找,并且此SQL所要查询的字段在当前索引对应的字段中都包舍了,那么就表示此SQL走完索引后不用回表了,所需要的字段都在当前索引的叶
2022-06-03 20:43:26 143
原创 5. 单点登录的实现机制
比如当我们登录京东首页以后,就可以访问其他的页面,比如秒杀页面、商品详情页面等,这就是通过单点登录实现的分不同的情况,有以下的几种解决方案:**根域名完全不相同**的情况比较难解决,比如一开始用户访问的时www.jd.com, 然后想携带用户信息再访问奶茶网站www.nc.com,这两个域名完全不相关,所以==需要一个第三方的中间的服务器来完成单点登录的功能==,也就是依赖中间的服务器去颁发一个全局的token,而每一个子的待访问的服务器,都颁发一个局部的token,避免频繁的验证。详细步骤有如下7步(对应
2022-06-03 20:42:40 131
原创 4. 分布式系统状态管理
在分布式的系统中,为了存储session,通过就可以使用redis来存储所有的session,如下图:但对于那种使用手机端等非浏览器访问时,它是不存储cookie的,所以向redis中存入token
2022-06-03 20:41:51 212
原创 5.3 用户注册与登录
用户登录成功后,将用户信息存入session很多页面必须是登录以后才能看到,所以要在controller层之前做用户信息的拦截,也就是登录检查,方法就是实现HandlerInterceptor接口中的preHandler方法,如下:然后到WebMvcConfiguration里面声明一下,在哪些地方这个拦截器生效,只要将我们的拦截器注入,然后告诉这个拦截器对哪些拦截器有效,如下:跨域问题简单可以理解成a.com不能访问b.com,而且项目中端口不同也叫不同的域,比如原则上5050是不能访问8080这个端口的
2022-06-03 20:41:01 684
原创 5.2 项目架构与运行
后端的代码通过idea运行只返回json字符串前端的代码通过vscode,返回html文件,并在对应的html下方触发ajax异步方法具体步骤:Spring、SpringMVC、SpringBoot三个框架之间的关系:面试一般会问:管理bean生命周期生与死的两个注解:@PostConstruct和@PreDestroy详细的说:ApplicationContext用于获取bean对象,主要是给程序员调用的;而BeanFactory比较底层,主要是给Java官方程序员调用使用ApplicationConte
2022-06-03 20:40:00 262
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人