hah
压力测试
压力测试当前软硬件环境系统承受最大负载帮忙找出系统的拼镜,压测都为了在线上处理能力和稳定性
在一个范围内,做到心中有数。
内存卸扣,并发与同步
重复,并发,重击,随机变化
响应时间:从客户发起一个请求开始,到服务端返回的响应结束,耗费时间
tps:每秒处理的交易数
ops:每秒处理的查询次数,单位次/秒
请求,读取缓存中数据,命中,否,查询数据库经发昂如缓存
返回结果
结束
分布式锁
set lock key value
redis
数据一致性问题:
缓存,分布式中可能多邰电脑部署同一个服务,如果使用本地缓存,会造成
缓存不一致问题
负载均衡不再同一个服务器,需要查询多次,
对数据进行修改,1号改了,2,3没法改(数据一致性问题)
将缓存存到一个中间件,可以读取,放到redis(可以解决数据一致性问题)
3号修改完成后,将数据进行更新缓存,其他也会读取,
redis:可以做分片和集群,高可用和高性能
ym配置:
redis:
host: 192.168.56.10
port:6379
如何使用redis:
@bean 添加组件
redisRemolate
序列化:整合redis ,引入data-redis -tartr
简单配置redis的host信息
redisTemplate
StringRedis
//保存
ops.set("hello")
ops.geet
redis实现缓存功能
在三级分类使用,进行优化,
//数据库查询封装数据,
redisTemplate.opsForValue()
//缓存逻辑
redisTmplate
//是否在缓存中有
String是否为空
缓存中没有,从数据库查询
查询到放入缓存
redisTemplate.opsForValue().set()
给缓存放json字符串,json字符串,逆用为能用对象,序列化与反序列化
//压测
对外内存溢出
使用letteuce客户端,适用netty进行通信
lettuce,和jedis操作底层的客户端。
Xmx300m,没有得到及时释放
可以通过dio.netty堆外内存溢出
netrry 底层自动计数
压测时超过容量报错
1.升级letters,切换jedis
压力测试
缓存穿透:
查询一个一定不存在的数据,由于缓存不命中,将去查询数据库,但是数据库无此记录,
没有将缓存的null写入缓存,导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义‘’风险:利用不存在的数据进行攻击,数据库压力增大最终崩溃
解决
null结果缓存,加入短暂过期时间
占分布式
main栈帧
局部变量表 args
返回地址 锁记录 操作数栈
thread t1=new thread();`
上下文切换
cpu时间片用完,垃圾回收,有更高优先级的运行
自己调用了sleep,yield,wait,join,park,synchronized,lock等
当context switch 发生时,需要操作系统保存当前装改,对应是程序计数器
状态包括程序计数器,每个站镇信心,局部变量,操作数栈,返回地址等
program counter register
时间片用完,切换到新的线程
常见方法:
start() 启动一个线程,run方法中代码 start 方法线程进入就绪,里面代码不一定立刻运行
每个兑现
run方法
getid获取线程id
geytname 获取线程名
setpriority 修改线程优先级
getstate 获取线程转态 new runnable ,blocked, waiting,time
interrupet打断线程
isAlive()线程是否存活
interrupt 打断线程
currenttHREAD() 获取当前正在运行兑现
sleep(long n) 让当前执行的线程休眠毫秒,休息是让出cpu时间片给其他线程那个
yiewd 显示
yield 让出cup使用权,从运行进入到thread Waitting
timeUnity 的sleep 从running 进入runnable 就绪状态,然后执行其他线程
2.具体的实现依赖于任务调度器
不会考虑阻塞
线程优先级调度器,它仅仅是个提示,调度器户优先级
如果cpu比较忙,优先级较高县城会分到更多时间安排呢,cpu
sleep实现
防止cpu占用100
while(true)
编写服务端程序
一直运行接受相应
join 等待县城运行结束,最多等待n秒
t1.start()
需要等待结果返回,才能继续运行就是同步
不许需要等待结构返回,就能继续运行就是异步
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析