谷粒商城
文章平均质量分 55
谷粒商城
坚持每天学习一点
找一个程序员学习搭子 杭州有没有帮我内推的大佬?
展开
-
SpringCache的简介和使用
Spring 从 3.1 开始定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术;并支持使用 **JCache(JSR-107)**注解简化我们开发Cache 接口为缓存的规范定义,包含缓存的各种操作集合; Cache 接 口 下 Spring 提 供 了 各 种 xxxCache 的 实 现 ; 如 RedisCache ,EhCacheCache , ConcurrentMap原创 2022-06-20 23:30:06 · 455 阅读 · 0 评论 -
缓存穿透、缓存雪崩、缓存击穿
1、高并发下缓存失效问题 — 缓存穿透缓存穿透:指查询一个不存在的数据,由于缓存不命中,将去查询数据库,但是数据库也无此记录,我们没有将这次查询的null写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。风险:利用不存在的数据进行攻击,数据库压力瞬间增大,最终导致崩溃解决:null结果缓存,并加入短暂过期时间2、缓存雪崩缓存雪崩:缓存雪崩是指我们在设置缓存key时采......原创 2021-11-28 20:30:00 · 76 阅读 · 0 评论 -
缓存一致性
缓存中的数据如何和数据库保持一致1、双写模式数据库更新后,同时更新缓存缺点:由于延迟原因,导致暂时性的脏数据问题2、失效模式数据库更新后,将缓存中数据删除,等待下次主动查询进行更新缺点:在删除缓存前,有请求读到缓存,那么读取到的数据就不是最新的3、缓存数据一致性解决方案无论是双写模式还是失效模式,都会导致缓存的不一致问题,以下为几个原则1)如果是用户维度数据,这种并发几率非常小,缓存数据加上过期...原创 2021-11-28 22:00:00 · 80 阅读 · 0 评论 -
谷粒商城查询商品的查询语句
查询语句:包含模糊匹配,过滤(包括属性,分类,品牌,价格区间,库存),排序。分页、高亮、聚合这个查询语句只是为了方便自己查找,记录下 ES 的DSL语法GET product/_search{ "query": { "bool": { "must": [ { "match": { "skuTitle": "iPhone" } } ], "filter.原创 2021-11-30 22:30:00 · 292 阅读 · 1 评论 -
RabbitMQ【谷粒商城学习】
1)消息中间件有两个重要的概念:消息代理和目的地当消息发送者发送消息后,将由消息代理接管,消息代理保证消息传递到指定目的地2)消息队列主要有两种形式的目的地队列(queue)点对点的消息通信(point to point)主题(topic) 发布(publish) / 订阅(subscribe)消息通信3)点对点模式消息发送者发送消息,消息代理将其放入一个队列中,消息接收者从队列获取消息,消息读取后被移出队列消息只有唯一的发送者和接收者,并不是说只能有一个接收者4)发布订阅模式。原创 2022-02-04 21:47:00 · 394 阅读 · 0 评论 -
Feign远程调用丢失请求头问题
feign远程调用导致请求头丢失问题原创 2022-02-04 23:35:00 · 1979 阅读 · 0 评论 -
接口幂等性
1、什么是接口幂等性接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用;比如说支付场景,用户购买了商品支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条...,这就没有保证接口的幂等性2、什么情况下需要幂等用户多次点击按钮用户页面回退再次提交微服务互相调用,由于网络问题,导致请求失败。feign 触发重试机制3、幂等性举例.原创 2022-02-12 21:28:00 · 4309 阅读 · 0 评论 -
加密解密加签验签
1、加密对称加密:加密和解密使用同一把秘钥缺点:不安全,一旦一方秘钥泄露,密文就会被自由解析非对称加密: 加密解密使用不同钥匙,四把钥匙2、公钥、私钥、加密、签名、验签1)公钥、私钥公钥和私钥是一个相对概念 它们的公私性是相对于生成者来说的。 一对密钥生成后,保存在生成者手里的就是私钥, 生成者发布出去大家用的就是公钥对于上述过程来说,密钥A就是私钥,密钥B就是公钥2)加密和数字签名加密: 我们使用一对公私钥中的一个密钥来对数据进行加密,而使.原创 2022-03-14 07:31:00 · 701 阅读 · 0 评论 -
RabbitMQ延时队列
1、场景:比如未付款订单,超过一定时间后,系统自动取消订单,并释放占用物品2、上述场景的解决方案:1)spring schedule的定时任务轮询数据库缺点:消耗系统内存,增加数据库压力,存在较大的时间误差(例如如果订单30分钟未支付时取消订单,且定时任务30分钟执行一次,那么一个订单最晚会59分钟才会被定时任务扫描到已取消,例如定时任务在0分钟时执行,恰巧订单在一分钟时来了,定时任务在30分钟时扫描订单,发现订单还没过期,但是31分钟订单恰好过期,于是等到60分钟,定时任务再次扫.原创 2022-03-14 07:19:00 · 1277 阅读 · 0 评论 -
SpringBoot定时任务
Work Day:工作日 (cron="* * * W *?last:最后一个 (cron="* * *?* 3L"):每月的最后一个周二。(出现在日和周几的位置):为了防止日和周冲突,在周和日上如果要写通配符?* 5#2"):每个月的第 2 个周 4。任意时刻的第七秒启动,每5秒执行一次。③ * :任意 指定位置的任意时刻。原创 2022-03-28 12:52:00 · 976 阅读 · 0 评论 -
阿里云的短信服务使用
暂时只能向测试手机号,发送测试短信模板,内容等弄好补充原创 2021-12-26 15:54:00 · 167 阅读 · 0 评论 -
MD5 & MD5盐值加密
在保存用户密码时,不能以明文的方式将密码保存在数据库中,这时就需要将密码进行加密后存储MD5:Message Digest aigorithm 5:信息摘要算法压缩性:任意长度的数据,算出的MD5长度都是固定的容易计算: 从原数据计算出MD5值很容易抗修改性:对原数据进行任何改动,哪怕只修改一个字节,所得到的MD5值都有很大区别强碰撞性:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的加盐:通过生成随机数与明文字符串进行组合,然后生成加密后的字符串数.原创 2021-12-26 16:00:00 · 207 阅读 · 0 评论 -
微博授权第三方网站登录
微博社交登陆原创 2021-12-29 18:45:00 · 4060 阅读 · 2 评论 -
分布式session的解决方法
SpringSession原创 2022-01-02 17:14:00 · 317 阅读 · 0 评论