mybatis一级缓存的范围是一个事务之内,减少数据库的无效访问范围是sqlSession级别的 在有多个会话以及分布式场景会产生脏读现象
mybatis二级缓存是命名空间级别的,也就是Mapper.xml中的nameSpace属性增删改还会被失效,在分布式场景会被失效,实际用的也不多
springCache 对方法进行缓存
开辟一块空间,根据不同的请求参数,
空间内会缓存多个结果。会根据请求参
数生成一个key,需要对请求参数生成
hashCode和equals方法,用于生成key
我使用docker启动了redis
docker run --name Myredis -v /dockerVolume/myRedis/data:/data -v /dockerVolume/myRedis/conf:/etc/redis/conf -p 6379:6379 -d redis /etc/redis/conf/redis.conf
缓存击穿 热点key失效过期或失败 大量请求打到数据库上,承受补助 可以提前给redis延期,可以添加分布式锁只让一个请求访问数据库并且构建缓存,其他的请求做快速失败
缓存穿透 反复查找数据库当中不存在的数据,数据库中本来就没有数据取出为null,也放入进redis当中,许多请求进来从Redis当中读取到null也会进入到数据库中,1、可以加分布式锁2、读到null可以用其他数据放入redis当中将null和空区分
缓存雪崩,大量的key同时失效,导致数据库压力剧增,原因:许多KEY的过期时间周期一致
SEATA
分布式锁常见的问题:没拿到锁的线程把别人的锁给删了
本小节把释放锁移出finally不是最优解,解法有2
1加锁的动作不要放在try里(后 面的小节会有介绍)
2加锁时,将当前线程ID放到锁对应的value中,删除时,先去
获取value,比对value值和当前线程ID-致才能删除
常见的限流算法
静态窗口限流
动态窗口限流
漏桶限流
令牌桶限流
令牌大闸
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.6.jar
java '-Dserver.port=8080' '-Dcsp.sentinel.dashboard.server=localhost:8080' -jar .\sentinel-dashboard-1.8.6.jar
在power shell 启动jar 包时添加参数时候,注意用单引号包裹参数
注意: business加上控制台配置后,启动后,不能马上在控制台里看到business,必须business有流量,才会显示到控制台
sentinel流控效果:
流控效果
1、快速失败:直接失败
2、Warm Up:即请求 QPS 从 threshold / 3 开始,经预热时长逐渐升至设定的 QPS 阈值
3、排队等待
流控模式
1、直接
2、关联 只有关联的资源受到限流,该资源才会开启限流
3、链路 只有只有指定接口进来的请求才会被限流
json 配置:
{
// 资源名
"resource": "ConfirmOrderWebController.doConfirm",
// 针对来源,若为 default 则不区分调用来源
"limitApp": "default",
// 限流阈值类型(1:QPS;0:并发线程数)
"grade": 1,
// 阈值
"count": 1,
// 是否是集群模式
"clusterMode": false,
// 流控效果(0:快速失败;1:Warm Up(预热模式);2:排队等待)
"controlBehavior": 0,
// 流控模式(0:直接;1:关联;2:链路)
"strategy": 0
// 预热时间(秒,预热模式需要此参数)
// "warmUpPeriodSec": 10,
// 超时时间(排队等待模式需要此参数)
// "maxQueueingTimeMs": 500
// 关联资源、入口资源(关联、链路模式)
// "refResource": "rrr"
}
//慢调用比例JSON配置:
[{
"resource": "GET:http://business/business/hello",
"count": 201,
"grade": 0,
"timeWindow": 10,
"minRequestAmount": 5,
"statIntervalMs": 1000,
"slowRatioThreshold": 0.3
}]
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
购票系统是一种用于方便用户购买门票、交通票、电影票等各种类型票务的系统。这种系统通常涉及以下几个方面的功能和流程: 用户注册与登录:用户可以通过注册账号并登录系统来进行购票操作,系统可以保存用户的个人信息和购买记录。 浏览与选择:用户可以浏览系统中提供的各种票务信息,如活动时间、票价、座位选择等,并选择需要购买的票务。 【引流】 编程语言和开发技术:如Java、$C++、Python、JavaScript、Ruby等。 数据库技术:如关系型数据库(如MySQL、Oracle、SQL Server)和非关系型数据库(如MongoDB、Redis)等。 前端开发:HTML、CSS、JavaScript等用于构建网页和Web应用程序的技术。 后端开发:涉及服务器端编程、API开发、数据库集成等技术。 移动应用开发:包括iOS开发(使用Swift或Objective-C)和Android开发(使用Java或Kotlin)等。 大数据技术:包括Hadoop、Spark、Hive等用于处理和分析大规模数据集的技术。
资源推荐
资源详情
资源评论
收起资源包目录
微服务架构火车售票系统train-12306-system.zip (319个子文件)
.env.dev 56B
.env.dev 56B
index.html 650B
index.html 647B
1.html 190B
batch.http 960B
member-moudule.http 701B
passenger.http 450B
testConfirmOrder.http 159B
station.http 84B
dailyTrain.http 0B
favicon.ico 25KB
favicon.ico 25KB
maven-wrapper.jar 61KB
ConfirmOrderServiceImpl.java 25KB
DailyTrainServiceImpl.java 17KB
JobController.java 9KB
DailyTrainTicket.java 8KB
DailyTrainStationServiceImpl.java 7KB
DailyTrainTicketServiceImpl.java 7KB
TrainServiceImpl.java 7KB
ConfirmOrderBeforeService.java 6KB
TrainStationServiceImpl.java 6KB
DailyTrainCarriageServiceImpl.java 5KB
Train.java 5KB
TrainCarriageServiceImpl.java 5KB
ConfirmOrderAfterService.java 5KB
TrainStation.java 5KB
PassengerServiceImpl.java 4KB
DailyTrainSeatServiceImpl.java 4KB
DailyTrainCarriage.java 4KB
StationServiceImpl.java 4KB
TrainCarriage.java 4KB
TrainSeat.java 4KB
ConfirmOrderWebController.java 4KB
TrainToken.java 4KB
TrainSeatServiceImpl.java 4KB
LogAspect.java 4KB
Passenger.java 3KB
TicketServiceImpl.java 3KB
MemberServiceImpl.java 3KB
Station.java 3KB
TrainTokenServiceImpl.java 3KB
TokenFilter.java 3KB
trainExceptionHandler.java 3KB
DailyTrainTicketQueryResp.java 3KB
CaptchaController.java 2KB
RedisConfig.java 2KB
TicketSaveOrEditReq.java 2KB
TicketQueryResp.java 2KB
ClazzUtil.java 2KB
Initialize.java 2KB
DailyTrain.java 2KB
DailyTrainController.java 2KB
PaymentController.java 2KB
DailyTrainStationSaveOrEditReq.java 2KB
MemberTokenUtils.java 2KB
TrainStationSaveOrEditReq.java 2KB
ConfirmOrderQueryResp.java 2KB
Ticket.java 2KB
DailyTrainSeatSaveOrEditReq.java 2KB
DailyTrainStation.java 2KB
MemberController.java 2KB
SeatColTypeEnum.java 2KB
DailyTrainQueryResp.java 2KB
DailyTrainSaveOrEditReq.java 2KB
TrainStationQueryResp.java 2KB
TrainController.java 2KB
MemberTokenUtils.java 2KB
DailyTrainStationQueryResp.java 2KB
DailyTrainStationController.java 1KB
TrainSeatSaveOrEditReq.java 1KB
TicketController.java 1KB
TrainSaveOrEditReq.java 1KB
InitialSnowDataId.java 1KB
TrainQueryResp.java 1KB
DailyTrainSeatQueryResp.java 1KB
ConfirmOrder.java 1KB
MemberInterceptor.java 1KB
DailyTrainCarriageSaveOrEditReq.java 1KB
TrainCarriageSaveOrEditReq.java 1KB
PassengerSaveOrEditReq.java 1KB
DailyTrainSeat.java 1KB
DailyTrainCarriageController.java 1KB
StationController.java 1KB
PassengerController.java 1KB
BussinessExceptionEnum.java 1KB
CommonResp.java 1KB
DailyTrainSeatController.java 1KB
TrainCarriageController.java 1KB
ConfirmOrderConsumer.java 1KB
TrainStationController.java 1KB
ConfirmOrderDoReq.java 1KB
TrainSeatQueryResp.java 1KB
DailyTrainCarriageQueryResp.java 1KB
TrainSeatController.java 1KB
LeftSeatController.java 1KB
TrainCarriageQueryResp.java 1KB
TrainTokenController.java 1KB
DailyTrainWebController.java 1KB
共 319 条
- 1
- 2
- 3
- 4
资源评论
枫蜜柚子茶
- 粉丝: 5827
- 资源: 2808
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功