![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 73
Java技术实践
这个作者很懒,什么都没留下…
展开
-
Java秒杀系统的设计与实现
一、系统设计1.1 秒杀系统概述特点:1)时间短、瞬间访问量大2)读多写少的场景。(库存固定则写操作固定,但访问量肯定无限大)难点:1)库存只有一份,但大量用户在集中时间对该数据进行读写。2)秒杀系统之所以挂,是因为请求没有经过上游的过滤与拦截,直接压倒在下游的数据层。常见的 Java Web 架构:1.2 优化思路核心思想:尽量将请求拦截在系统上游;读多写少的场景使用缓存介绍一些常见的操作:1)浏览器端的拦截点击 “购买” 后,按钮置灰,禁止用户重复提交请求。通过 JS 代转载 2022-02-07 17:59:59 · 5081 阅读 · 0 评论 -
Redis实现分布式锁的7种方案
日常开发中,秒杀下单、抢红包等等业务场景,都需要用到分布式锁。而Redis非常适合作为分布式锁使用。本文将分七个方案展开,跟大家探讨Redis分布式锁的正确使用方式。如果有不正确的地方,欢迎大家指出哈,一起学习一起进步。什么是分布式锁方案一:SETNX + EXPIRE方案二:SETNX + value值是(系统时间+过期时间)方案三:使用Lua脚本(包含SETNX + EXPIRE两条指令)方案四:SET的扩展命令(SET EX PX NX)方案五:SET EX PX NX + 校验唯一随原创 2022-02-07 14:17:34 · 447 阅读 · 0 评论 -
利用自定义注解切面做系统操作日志记录
一、定义自定义注解:package com.zb.common.log;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target({Eleme原创 2022-01-24 10:02:02 · 561 阅读 · 0 评论