自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 八股背诵:常见集合

数组是一种用连续物理内存存储相同类型数据的数据结构。

2025-03-08 15:54:13 597

原创 黑马点评项目总结

超卖问题的解决方案:加锁加乐观锁还是悲观锁呢??悲观锁串行性能太差,显然和我们的秒杀业务不太符合,那就加乐观锁,啥叫乐观锁?个人理解就是不加锁,只在更新时判断是否有别的线程在修改数据。乐观锁有版本号法和CAS法。本质无区别。一人一单一个用户只能买一张优惠券。那写业务。买优惠券请求来了,先查下订单表(用用户id和优惠券id查),如果查到有订单,则不能再买。写完业务用jmeter一测试,我尼玛怎么一个人还能买好多张,黄牛搁这卡bug呢?

2025-03-06 16:29:51 1019 1

原创 黑马点评项目笔记(7)

已经实现。

2025-03-04 14:16:35 277

原创 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

原创 黑马点评项目笔记(4)

简而言之,分布式锁一定要是外部的,不能在jvm里面。redis实现分布式锁。

2025-02-28 09:24:04 959

原创 黑马点评项目笔记(3)

以上是订单表的内容,状态、时间等。

2025-02-27 11:26:45 1106

原创 黑马点评项目笔记(2)

缓存就是数据交换的缓冲区,存储数据的临时地方,一般读写性能高。

2025-02-26 16:11:45 393

原创 黑马点评项目笔记(1)

短信登陆的,分别为发送验证码、验证码的登陆与注册、根据流程图写业务逻辑。其中用hutool包中的RandomUtil下的randomNumbers方法生成验证码。

2025-02-25 17:01:09 1104

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除