- 博客(14)
- 收藏
- 关注
原创 RabbitMQ学习笔记(高级)
如上图业务,消费者下单后迟迟不付款,会使得别人也买不了,最后导致商家东西卖不出去,别的消费者买不到东西。所以下单后需要有一个倒计时,时间到了还不付款则取消订单。如果使用定时任务,时间设置太短数据库扛不住,时间设置太长时效性太差,到了30分钟还没取消。可以使用延迟消息来做这个延迟任务,下单后发一条延迟消息给mq,固定时间后收到这条消息,检查订单状态,若订单状态为未支付则删除订单。
2025-04-12 17:13:18
334
原创 jwt令牌登录
调用解析方法解析token,解析出claims,使用try catch,只要catch到异常说明解析token失败,不放行。1、创建一个jwt properties类,里面存放jwt令牌的配置。生成:需要参数为秘钥,过期时间,和一个map类型的claims(作为载荷)。用固定算法给传过来的秘钥签名,然后使用JWT工具生成一个jwt令牌。3、验证用户登录(验证码/密码),验证通过后,生成jwt令牌(就是一个token),返回token给前端。2、创建一个jwtUtil类,用来生成和校验jwt令牌。
2025-04-01 09:19:35
198
原创 RabbitMQ学习笔记(初级)
同步的优势:时效性强,等待到结果后才返回。缺点:拓展性差,要加功能必须加代码。性能下降,业务链路太长,调用的微服务越多性能越差。级联失败,中间一个挂了,调用链路上的所有业务都出现问题。异步可以解决同步的问题异步的优势如图:首先接触耦合,拓展性较强。其次,无需等待,我只要发到消息对象那就完事了。再者,故障隔离,我只管发给你,你后面出什么问题报错不管我的事。最后,流量削峰填谷。
2025-03-17 10:39:48
259
原创 八股文背诵:MySQL篇
聚簇索引:聚簇索引就是索引和数据放在一块,B+树的叶子节点存储的是整行数据,只有一个聚簇索引,一般为主键值。非聚簇索引:非聚簇索引就是索引和数据不放在一块,B+树的叶子节点存的是主键值。可以有多个非聚簇索引。知道什么是回表查询吗?这样你查询如果使用的是非聚簇索引,非聚簇索引查到主键值,根据主键值在聚簇索引里查到整行数据,这样查了两次索引,所以叫回表查询。知道,覆盖索引指的是要查询的字段在索引中全部能找到。避免了回表查询,提高查询性能。MySQL超大分页怎么处理?
2025-03-09 15:31:29
587
1
原创 黑马点评项目总结
超卖问题的解决方案:加锁加乐观锁还是悲观锁呢??悲观锁串行性能太差,显然和我们的秒杀业务不太符合,那就加乐观锁,啥叫乐观锁?个人理解就是不加锁,只在更新时判断是否有别的线程在修改数据。乐观锁有版本号法和CAS法。本质无区别。一人一单一个用户只能买一张优惠券。那写业务。买优惠券请求来了,先查下订单表(用用户id和优惠券id查),如果查到有订单,则不能再买。写完业务用jmeter一测试,我尼玛怎么一个人还能买好多张,黄牛搁这卡bug呢?
2025-03-06 16:29:51
1019
1
原创 KMP算法学习自我理解
重点是前后缀末尾不相同,这时候要找前缀末尾j的前一位j-1位对应的next数组值,将前缀末尾j移到这个数值的位上去。那么j-1位对应的next数组值说的是j-1长度的前缀字符串的前缀是多长,这个长度的字符串在这个j-1长度的前缀字符串中有个后缀和它一样,那么。求next数组其实就是看前缀末尾和后缀末尾是否相同,这里设前缀末尾为i(不仅是前缀末尾还是前缀的长度),后缀末尾为j。前缀末尾初始为0,后缀末尾初始为1,next数组初始值为next[0] = 0(第一个字符的最长相等前后缀一定为0)。
2025-03-02 21:03:21
138
原创 黑马点评项目笔记(6)
缺点:从队列中pop的信息没来得及处理如果宕机了,那消息就丢失了,因为pop会把消息从队列中remove。///////无法支持一条消息给多个用户使用。
2025-02-28 19:53:56
137
原创 黑马点评项目笔记(5)
那问题就是怎么把数据存进redis里面,选什么类型的数据。查询优惠券库存用string就行,查是否下单要求一个key能存多个value,且里面的value唯一。但是整个秒杀的业务逻辑可以分为两部分,查询资格和减库存创订单。一个线程查询有没有资格,另一个线程创建订单,这样异步执行,提高性能。如上图,所有业务逻辑串行执行,那总的执行时间就是每一个功能的执行时间,但是其中还有四个对数据库的操作并且有两个写操作,我们知道数据库的性能其实不好,所以这整个秒杀功能的性能固然不好。而查询资格是查数据库,性能不高。
2025-02-28 15:44:50
383
原创 黑马点评项目笔记(1)
短信登陆的,分别为发送验证码、验证码的登陆与注册、根据流程图写业务逻辑。其中用hutool包中的RandomUtil下的randomNumbers方法生成验证码。
2025-02-25 17:01:09
1104
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人