- 博客(234)
- 资源 (36)
- 收藏
- 关注
原创 高并发限流方案
原理:将固定窗口细分为多个小窗口(如 1 秒分为 10 个 100ms 窗口),统计最近 N 个小窗口的总请求。工具:消息队列(如 RabbitMQ)、Nginx limit_req(漏桶变种)。原理:以恒定速率处理请求(如每秒 10 次),超出桶容量的请求被丢弃/排队。缺点:窗口临界问题(如第 1 秒末和第 2 秒初的突发请求可能双倍通过)。工具:Redis + Lua(维护时间戳队列)、Sentinel。优点:允许突发流量(如短时间内消耗积压的令牌)。缺点:无法应对突发流量(即使系统有空闲资源)。
2025-06-30 19:10:39
351
原创 spring中的@Cacheable缓存
代码中制定了两种缓存的策略,1:Caffeine ,2:redis。如果不想使用默认的缓存策略,那么可以再配置文件中制定相关的策略,如果你的项目中引入了,这个依赖会自动的使用reids作为缓存。在类上加上@CacheConfig注解,并制定对应的缓存策略。如果是制定上面的策略需要下载相关的依赖否则可能会报错。并且可以配置统一的key的过期时间等配置。在方法上面加上注解@Cacheable,制定1的换也是要引入相关的依赖文件的。
2025-06-25 17:22:38
227
原创 Can not get index from column label ‘date‘
是因为mysql依赖升级之后不能用select *,必须将所有的字段都列出来。
2024-01-11 10:01:11
1406
原创 二维码生成
本文才有hutool生成二维码需要特殊实现的可以参考hutool文档直接返回页面显示 @GetMapping("/createQrCode3") public void createQrCode3(HttpServletRequest request, HttpServletResponse response) throws Exception { BufferedImage image = QrCodeUtil.generate("https://hutool.cn/",
2021-12-15 18:12:05
147
原创 引入外部jar包,打包失败。
1. 在项目新建一个lib包在项目新建lib包,把外部的jar包引入进来。2. 在pom文件中配置里面的信息。请解压jar包查看信息 <!--外部引入的 jd宙斯平台jar包--> <dependency> <groupId>com.jd.open.api</groupId> <artifactId>open-api-sdk</artifactId>
2021-10-15 11:23:28
429
原创 马士兵—JVM—内存溢出—3.栈溢出StackOverflowError
栈溢出的问题事例public void m(){ m(); }方法不断调用方法,因为每调用一次,都会在栈里面生成一个栈针。报错信息java.lang.StackOverflowError解决办法只有一个只能将Xss这个参数调大。-Xss=200m...
2021-08-12 17:09:56
147
原创 马士兵—JVM—内存溢出—2.arthas阿里线上Java诊断工具
参考文档阿里官方文档https://arthas.aliyun.com/doc/en/quick-start.html使用方法1. 生成dump文件。heapdump /root/1.hprof2. jhat 启动服务jhat -J-mx512M 1.hprof3.页面访问地址:服务器ip+端口(根据上图显示的端口)http://192.168.17.129:7000/4.分析页面拖到最下面。选择如图的选项。4.1 instance counts for all clas
2021-08-12 15:52:50
441
原创 马士兵—JVM—内存溢出—1.线上OOM(内存溢出)问题排查——亲测
1. 模拟线上oom问题1.1 代码@GetMapping("/addList") public void addList(){ List list = new ArrayList(); while (true){ String a = "aaaaa"+new Date(); list.add(a); System.out.println(a); } }2. 线上环
2021-08-12 13:46:48
1254
原创 加密随机盐最好的生成办法
思路例如我的密码是123,我生成的随机盐是abc。那我就用123abc去加密。得到密文为 1a2b3c。但是我存数据库的时候我存密文加盐,我存1a2b3c_abc。当我再拿123去解密的时候,我就根据用户名去数据库查找密码。得到密码为1a2b3c_abc。然后我根据规则得到盐是abc。然后再拿新的密码和盐去加密再加上盐,看看是不是个数据库密码一值。代码事例用了hutool的依赖 public static void main(String[] args) { String
2021-07-23 17:00:59
2606
2
原创 mysql设置create_time和update_time自动跟新
CURRENT_TIMESTAMPcreate_timeupdate_time
2021-06-21 20:06:24
337
原创 验证码生产验证
思路生产图形验证码,返回给前端,并将图片验证码的值保存到redis中,并设置过期时间点击登录按钮,去redis中获取图形验证码。并判断时候过期通过则放行依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.4</v
2021-06-11 13:18:22
310
1
原创 docker安装mongodb
docker pull mongo:latest创建外部目录挂载内部目录mkdir /data/mongo启动mongodocker run -p 27017:27017 -v /data/mongo:/data/db --name mongodb -d mongo启动报错,没有权限,查看日志,使用下面命令启动成功添加 --privileged=true才能启动docker run -p 27017:27017 -v /data/mongo:/data/db --name mongo
2021-05-10 13:19:53
173
原创 字段校验注解
需要引入依赖<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>compile</scope> &l
2021-04-21 16:23:23
546
原创 JM——多线程高并发——3.ThreadLocal
1. 原理threadlocal而是一个线程内部的存储类,可以在指定线程内存储数据,数据存储以后,只有指定线程可以得到存储数据。用当前线程设置的值,只有当前才能获取到,其他的都获取不到。2. 代码解释2.1 只有当前线程才能获取package com.jm.thread;public class Test_ThreadLocal001 { static ThreadLocal <String> threadLocal = new ThreadLocal<>();
2021-03-04 00:25:45
247
1
springcloud-搭建微服务(聚合工程)
2019-04-12
springcloud-搭建微服务(聚合工程)及配置Eureka
2019-04-14
springboot +mybatis(durid的数据库连接池)+freemarker--可能我freemaker的依赖没有加到时候自己再pom文件下加一下
2019-04-07
springcloud-搭建微服务(聚合工程)及配置Eureka(搭建Eureka集群)+负载均衡(Ribbon)调用eureka服务
2019-04-15
kafka和zookeeper和canal安装包.zip
2020-06-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人