摘要: 后端应用分层是什么,例如:你用Spring MVC开发web程序、项目用三层架构分包,这些都用了分层思想。 MVC模式包含了三部分: 视图(view):负责界面显示、处理用户交互。如:前端应用 控制器(controller):协调视图层与模型层之间的相互工作。控制器接收视图层发来的请求,决定用那些模 阅读全文
posted @ 2023-01-30 21:01 IT阿辉 阅读(806) 评论(0) 推荐(3) 编辑
摘要: 动态代理和责任链设计模式适用范围广,在Spring和MyBatis有着重要的应用,比如SpringAOP、Mybatis的插件技术,想要搞懂当中的技术原理必须掌握上面两个设计模式。 代理模式可以理解为您要操作一个对象,但是要经过这个对象的“代理”对象去操作。就好似你在一家软件公司做开发,客户发现程序 阅读全文
posted @ 2022-12-04 19:29 IT阿辉 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 缓存穿透是用户访问一个不存在的key,导致请求穿透到数据库。 问题关键是程序上要识别出这个key是一个错误key,不是由系统生成的key。每次添加或删除缓存时维护一个key字段查询过滤器,例如:布隆过滤器、HashSet。这样在访问缓存前,可以对key先进行查询过滤,判断key是否存在,再往下执行业 阅读全文
posted @ 2022-09-11 23:38 IT阿辉 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 上一篇说到缓存的更新操作是非幂等操作,会出现并发更新的问题。那用缓存删除操作实现缓存更新行不行,您可能觉得奇怪,删除了缓存如何更新,假设读业务先读取缓存,如果发现没有就回溯到读数据库找数据,然后再更新回缓存。这种方式叫做懒加载,是在查询到数据库时,主动更新缓存。就是说删除同样能达到更新缓存的目的,为 阅读全文
posted @ 2022-09-11 23:34 IT阿辉 阅读(1164) 评论(0) 推荐(0) 编辑
摘要: 为什么缓存与数据库要结合使用,使用缓存的目的是为了减少用户请求穿透到服务端和数据库,尽量将资源放置在离用户更近的地方,让用户能够更快得到应答。在一些活动大促、秒杀场景中,经常会面临突然的流量爆发,造成系统的高并发访问。例如秒杀商品的详情页内容提前预热到缓存中,能缓解数据库读取压力。但在高并发下,缓存 阅读全文
posted @ 2022-09-11 23:30 IT阿辉 阅读(145) 评论(0) 推荐(0) 编辑