摘要:
事情起因 最近一段时间我们公司有个项目是做视力筛查的,平时都是正常的,但是最近这两天突然会时不时地卡顿一下,一卡就是几分钟。 排查过程 1.查看日志 卡顿首先是排查日志,日志报的是feign调用学生服务超时,进到学生服务查看时,看到日志报的是事务超时 2.继续排查,既然是事务超时,查看mysql锁 阅读全文
事情起因 最近一段时间我们公司有个项目是做视力筛查的,平时都是正常的,但是最近这两天突然会时不时地卡顿一下,一卡就是几分钟。 排查过程 1.查看日志 卡顿首先是排查日志,日志报的是feign调用学生服务超时,进到学生服务查看时,看到日志报的是事务超时 2.继续排查,既然是事务超时,查看mysql锁 阅读全文
posted @ 2024-09-19 17:23
leecoders
阅读(38)
评论(0)
推荐(0)
摘要:
加密字符串sms_token 首先生成一个加密token,包含以下内容: 时间戳 设备id,优先通过前端的能力(比如uniapp自带的功能)获取设备id,如果获取不到则前端自己生成,然后存在本地(可以取为time这样,值采用时间戳) 加密方式: des+盐(盐暂时固定一个,后面有必要可以从服务端获取 阅读全文
posted @ 2024-09-19 17:01
leecoders
阅读(22)
评论(0)
推荐(0)
摘要:
设置远程仓库 git remote add origin http://192.168.1.1:9580/program/name.git 如果已有仓库(如果从github开源下载下来默认是有的): git remote set-url origin http://192.168.1.1:9580/ 阅读全文
posted @ 2024-09-19 16:22
leecoders
阅读(14)
评论(0)
推荐(0)
摘要:
这里主要讲一下复杂的spel表达式,简单的不写了 解析集合 集合需要先自定义一个方法,比如getAuthorsName,然后在注解里通过root.target.getAuthorsName把方法引用进去 public class BookService { public String getAuth 阅读全文
posted @ 2024-09-19 16:21
leecoders
阅读(159)
评论(0)
推荐(0)
摘要:
引用网上图片来说明一下 理解这个OAuth2的关键是要记住,code是前端持有的,access_token是后端持有的,code是用来一次性换access_token的,access_token才是后续请求资源的认证信息 那么为什么第4步不是直接返回access_token,而是code呢? 原因: 阅读全文
posted @ 2024-09-19 16:20
leecoders
阅读(117)
评论(0)
推荐(0)
摘要:
算法 实现 优缺点 固定窗口算法 固定窗口算法通过在单位时间内维护一个计数器,能够限制在每个固定的时间段内请求通过的次数,以达到限流的效果。 固定窗口算法的优点是实现简单,但是可能无法应对突发流量的情况,比如每秒允许放行100个请求,但是在0.9秒前都没有请求进来,这就造成了在0.9秒到1秒这段时间 阅读全文
posted @ 2024-09-19 16:18
leecoders
阅读(71)
评论(0)
推荐(0)
摘要:
引言 生活中总会发现一些奇思妙想,但是又得不到科学验证,我一直想记录这些东西。 奇思妙想 1.有没有一种感觉,感冒病毒传染给别人了,自己就好了?仿佛病毒有一个主病毒,这个主病毒是有思想的一样。 2.飞机是通过空气动力学来运作的,而不是模仿鸟类,但是模仿鸟类是不是会更简单一些?能不能做一对翅膀,加上机 阅读全文
posted @ 2024-09-19 16:18
leecoders
阅读(15)
评论(0)
推荐(0)
摘要:
引言 本地缓存是一种常用的缓存手段,在客户端会经常使用这种手段来提升效率,但服务端在分布式环境下它出现的频率并不高,原因是本地缓存无法做到多台服务器数据共享,因此我们会采用redis这种分布式缓存,然而在某些情况下我们还是要使用的话怎么办呢?网上基本查不到有人去做这种分布式环境使用本地缓存,又要实时 阅读全文
posted @ 2024-09-19 16:16
leecoders
阅读(162)
评论(0)
推荐(0)
摘要:
一、锁超时 先查看当前事务,看看有没有事务时间超时的 SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX; 查到如下结果: INSERT INTO information_schema.INNODB_TRX (trx_id, trx_state, trx_star 阅读全文
posted @ 2024-09-19 16:16
leecoders
阅读(233)
评论(0)
推荐(0)
摘要:
事情起因 起因是某天线上突然不停报锁超时,重启后又会变正常,但是在某个时刻又会重复发生。这个是报错的日志(日志对检测这种bug不一定有用,唯一的作用就是告诉我们啥表被锁了,但是看不出因为啥被锁的) ### SQL: INSERT INTO t_check_record ( id,create_tim 阅读全文
posted @ 2024-09-19 16:16
leecoders
阅读(150)
评论(0)
推荐(0)
摘要:
分享一部分我写的监控命令,如下: 1.cpu监控 top -b -n 1 | grep Cpu | awk '{print $2}' | cut -f 1 -d '%' 这个命令返回的是cpu的用户那部分的使用率,就是us那一项,一般情况下我们监控这个指标就可以 这个使用率一般超90%需要警告 2. 阅读全文
posted @ 2024-09-19 16:15
leecoders
阅读(29)
评论(0)
推荐(0)
摘要:
mysql大部分性能的问题都出在索引上,因此索引优化是头等大事 1.最左匹配原则 这是索引基本的匹配原则,这里不多说,只要记住索引是要按顺序创建的,mysql是按顺序去b+树上查找的就行 2.Using temporary; Using filesort 往往出现这个都代表着不好的情况,通常是在gr 阅读全文
posted @ 2024-09-19 16:14
leecoders
阅读(21)
评论(0)
推荐(0)
摘要:
一、事务并发会出现的三个问题 数据库事务具有ACID4个特性: A:Atomic,原子性,将所有SQL作为原子工作单元执行,要么全部执行,要么全部不执行; C:Consistent,一致性,事务完成后,所有数据的状态都是一致的,即A账户只要减去了100,B账户则必定加上了100; I:Isolati 阅读全文
posted @ 2024-09-19 16:12
leecoders
阅读(270)
评论(0)
推荐(0)
摘要:
近日线上出现了一次oom,话不多说,马上排查。 排查经过 由于情况比较紧急,直接先重启了服务,这是老项目,当时也没有开启dump日志,所以获取不到当时的dump日志。 我们先是拿了一部分gc日志用于观察,下面是部分gc的日志 2023-10-09T10:01:08.920+0800: 15.687: 阅读全文
posted @ 2024-09-19 16:11
leecoders
阅读(59)
评论(0)
推荐(0)
摘要:
问题描述 最近一次压测的过程中发现一个奇怪的bug,调A服务的接口,但是ip和端口却是B服务的,调B服务的接口,但是ip和端口却是A服务的。 比如调用A服务的接口,本来应该是 http://192.168.10.10:8100/api/testA,调用B服务的接口,应该是 http://192.16 阅读全文
posted @ 2024-09-19 16:09
leecoders
阅读(22)
评论(0)
推荐(0)
摘要:
有趣的话题 如果连续扔了10次硬币,8次向上,2次向下,下一次硬币向下的概率是多少?在我们的认知里,这就是一个独立概率的问题,也就是概率永远是一半,不管前面扔了多少次向上,下一次向下的概率是不会变的,这是一个数学界都公认的原理,但是我偏偏不信科学,我就是觉得应该是向下的概率大,因此我想验证一下。 我 阅读全文
posted @ 2024-09-19 16:09
leecoders
阅读(72)
评论(0)
推荐(0)
摘要:
一、mysql在线ddl 例如建索引,常规建索引会发生锁表的情况,特别是大表建索引会持续很久,一直锁表是肯定不行的,因此就有了在线建索引 SQL如下: ALTER TABLE tb_name ADD PRIMARY KEY (column), ALGORITHM=INPLACE, LOCK=NONE 阅读全文
posted @ 2024-09-19 16:09
leecoders
阅读(24)
评论(0)
推荐(0)
摘要:
订单模块 作为电商系统,首入眼帘的就是订单模块,也是电商基础的模块之一。订单流程包含了订单从下单到完成的整个流程,订单的状态如下: 这里迎来了第一个问题,可以看到订单状态有非常多种,如果用if else去做判断,逻辑会非常多,这时候就需要用到状态机模式了,状态机如何使用我这里不细讲,可以自行去百度。 阅读全文
posted @ 2024-09-19 16:08
leecoders
阅读(12)
评论(0)
推荐(0)
摘要:
背景 我们有一个业务场景是给学生发布考试,发布的过程不复杂,就是一个老师传递一些考试相关的参数过来,服务器自动给所有学生生成一份任务,但是在学生上交的时候会有个问题,就是成百上千的学生一起上交,会有并发流量的问题。 这里由于我们的考试可能会设计多个班级的联考,乃至一个学校或多个学校的联考,因为上交成 阅读全文
posted @ 2024-09-19 16:07
leecoders
阅读(18)
评论(0)
推荐(0)
摘要:
领域驱动介绍: 什么是领域模型设计?基于对象vs基于数据库 设计上我们通常从两种维度入手: a. Data Modeling:通过数据抽象系统关系,也就是数据库设计 b. Object Modeling:通过面向对象方式抽象系统关系,也就是面向对象设计 我们目前就是依据Data Modeling设计 阅读全文
posted @ 2024-09-19 16:05
leecoders
阅读(28)
评论(0)
推荐(0)

浙公网安备 33010602011771号