随笔分类 -  谷粒笔记

摘要:1、本地事务 一、事务的基本性质 数据库事务的几个特性:原子性(Atomicity )、一致性( Consistency )、隔离性或独立性( Isolation)和持久性(Durabilily),简称就是 ACID; 原子性:一系列的操作整体不可拆分,要么同时成功,要么同时失败 一致性:数据在事务 阅读全文
posted @ 2022-04-25 16:12 佳沃 阅读(60) 评论(0) 推荐(0) 编辑
摘要:简介 https://www.elastic.co/cn/what-is/elasticsearch 全文搜索属于最常见的需求,开源的 Elasticsearch 是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它 Elas 阅读全文
posted @ 2022-04-14 16:50 佳沃 阅读(164) 评论(0) 推荐(0) 编辑
摘要:@Configuration public class GulimallConfiguration { @Bean public CorsWebFilter corsWebFilter(){ UrlBasedCorsConfigurationSource source = new UrlBasedC 阅读全文
posted @ 2022-04-14 11:17 佳沃 阅读(200) 评论(0) 推荐(0) 编辑
摘要:一、什么是幂等性 接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用;比如说支付场景,用户购买了商品支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录 阅读全文
posted @ 2022-04-13 19:17 佳沃 阅读(81) 评论(0) 推荐(0) 编辑
摘要:feign远程调用时会构建一个新的请求模板 解决: 使用feign请求拦截器requestInterceptor给新的请求模板加上请求头 @Configuration public class GuliFeignConfig { @Bean("requestInterceptor") public 阅读全文
posted @ 2022-04-13 16:53 佳沃 阅读(204) 评论(0) 推荐(0) 编辑
摘要:使用案例(在购物车页面获取登录用户信息) 使用拦截器 /** *在执行目标方法之前,判断用户的登录状态。并封装传递给controller目标请求 * **/@Componentpublic class CartInterceptor implements HandlerInterceptor { p 阅读全文
posted @ 2022-04-12 18:11 佳沃 阅读(38) 评论(0) 推荐(0) 编辑
摘要:1、手机短信验证码防刷校验 将第一次生成的验证码存入redis,并设置过期时间,当二次请求的时候从redis获取验证码,如果存在则校验过期时间 @ResponseBody@GetMapping("/sms/sendcode")public R sendCode(@RequestParam("phon 阅读全文
posted @ 2022-04-11 17:50 佳沃 阅读(68) 评论(0) 推荐(0) 编辑
摘要:一、缓存 1、缓存使用 为了系统性能的提升,我们一般都会将部分数据放入缓存中,加速访问。而 db 承担数据落盘工作。 哪些数据适合放入缓存? 即时性、数据一致性要求不高的 访问量大且更新频率不高的数据(读多,写少) 举例:电商类应用,商品分类,商品列表等适合缓存并加一个失效时间(根据数据更新频率来定 阅读全文
posted @ 2022-04-11 17:34 佳沃 阅读(43) 评论(0) 推荐(0) 编辑
摘要:一、线程回顾 1、初始化线程的 4 种方式 继承 Thread 实现 Runnable 接口 实现 Callable 接口 + FutureTask (可以拿到返回结果,可以处理异常) 线程池 public class ThreadTest { public static ExecutorServi 阅读全文
posted @ 2022-04-11 12:02 佳沃 阅读(261) 评论(0) 推荐(0) 编辑
摘要:1、简介  Spring 从 3.1 开始定义了 org.springframework.cache.Cache和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术;并支持使用 JCache(JSR-107)注解简化我们开发;  Cache 阅读全文
posted @ 2022-04-10 13:31 佳沃 阅读(90) 评论(0) 推荐(0) 编辑
摘要:1、本地锁的问题 本地锁只能锁住当前进程,当负载均衡到其他的集群服务时又重复查询db了 2、分布式锁实现 保证加锁和解锁的原子操作。 使用 RedisTemplate 操作分布式锁 public Map<String, List<Catelog2Vo>> getCatalogJsonFromDbWi 阅读全文
posted @ 2022-04-10 10:31 佳沃 阅读(28) 评论(0) 推荐(0) 编辑
摘要:1、缓存穿透  缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中,将去查询数据库,但是数据库也无此记录,我们没有将这次查询的 null 写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。 在流量大时,可能 DB 就挂掉了,要是有人利用不存在的 key 频繁攻击 阅读全文
posted @ 2022-04-08 17:38 佳沃 阅读(31) 评论(0) 推荐(0) 编辑
摘要:1、let声明变量 // var声明的变量往往会越域// let声明的变量有严格局部作用域 { var a = 1; let b = 2; } console.log(a); // 1 console.log(b); // ReferenceError: b is not defined / / v 阅读全文
posted @ 2022-04-08 12:26 佳沃 阅读(62) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示