秒杀/高并发解决方案+落地实现 (技术栈: SpringBoot+Mysql + Redis +RabbitMQ +MyBatis-Plus +Maven + Linux + Jmeter ) -03
秒杀/高并发解决方案+落地实现 (技术栈: SpringBoot+Mysql + Redis +RabbitMQ +MyBatis-Plus +Maven + Linux + Jmeter ) -03
优化秒杀: Redis 预减库存+Decrement
Github:China-Rainbow-sea/seckill: 秒杀/高并发解决方案+落地实现 (技术栈: SpringBoot+Mysql + Redis + RabbitMQ +MyBatis-Plus + Maven + Linux + Jmete ...
从尾到头打印链表
题目描述
输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。
如输入{1,2,3}的链表如下图:
返回一个数组为[3,2,1]
0 <= 链表长度 <= 10000
示例1
输入:
{1,2,3}
返回值:
[3,2,1]
示例2
输入:
{67,0,24,58}
返回值:
[58,24,0,67]
思路及解答
⾸先我们需要想⽤哪些解法可以解,⼤概有如下 ...
springboot~3.x版本的认证逻辑
在 Spring Boot 3.4.x 中,HttpSecurity 的 and() 方法已经被标记为过时,因此我们需要采用新的 Lambda 风格 API 来配置安全性。你可以将 exceptionHandling() 移到 HttpSecurity 的顶层配置中,而不是在 authorizeHttpRequests 的内部。
authenticationEntryPoint和accessDeniedHandler的自定义
import jakarta.servlet.ht ...
从实际编程示例中看java中对象的浅拷贝和深拷贝
浅拷贝(克隆)与深拷贝(克隆)
先来看一个简单的例子,我们希望复制一个set对象,在修改这个复制对象的时候,原有的set对象不应该改变
接下来举两种复制方法,我们应该选择哪一个呢?
Set<String> copiedSet = originalSet;
Set<String> copiedSet = new HashSet<>(originalSet);
显然我们应当选择第二种:
Set<String> co ...
从实际的编程示例中看i++与++i的区别
举一个简单的例子,我们希望给一个长字符串出现的每个字符的数量进行打表
这里给出部分代码
String p;
HashMap<Character,Integer> map =new HashMap<>();//使用hashmap存键值对
for(int i =0;i<stringLong;i++){
int count =map.getOrDefault(p.charAt(i),0);//map中有值取值,没值默认为0
map.put(p.charAt(i),co ...
CoderOilStation 公司的技术规范
内容概要
CoderOilStation 公司的技术规范和摘要 JavaEE技术 软件编程 计算机
适用人群
高校本科生 教职人员 初级中级和高级软件工程师
使用场景及目标
高校计算机相关专业的教学辅导参考资料文档,使用的市场公司最新的Java EE软件编程技术思想 目标供其他高校和软件互联网公司技术规范参考
其他说明
技术的交流平台 深圳 ...
maven依赖引入
在 Maven 中,依赖版本冲突默认遵循 "最短路径优先" 和 "最先声明优先" 原则。当你直接引入 hutool-all:5.8.38 但被其他依赖(如 spx-boot-starter)传递性引入的 hutool-all:5.8.10 覆盖时,可通过以下方法强制使用指定版本:
方法 1:使用 <dependencyManagement> 锁定版本
在 <dependencyManagement> 中声明所需版本,强 ...
倒排索引
-CoderOilStation
倒排索引
全文检索的方式从lucene框架到Elastic Search发布框架过渡。索引库和文档库建立数据检索连接。数据记录的方式会影响数据库系统的查询过程和性能。Java Script是web系统的脚本语言。H5版本的发布使得数据可以使用脚本技术适配移动嵌入式手机移动端的不同开发设备。
轻量级别 ...
算法day27-贪心(5)
目录
合并区间
单调递增的数字
监控二叉树
一、合并区间
https://leetcode.cn/problems/merge-intervals/?envType=problem-list-v2&envId=8At1GmaZ
💡 解题思路:
先排序:
按照每个区间的起始点 start 升序排序。
排序后的区间才能方便我们进行逐个合并。
依次遍历区间:
设置两个变量 start 和 end ...
一款由 SpringBoot + Vue 开发的前后端分离博客!
大家好,我是 Java陈序员。
今天,给大家介绍一款开源的前后端分离博客系统。
关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。
项目介绍
WeBlog —— 一款由 SpringBoot + Vue 3.2 + Vite 4.3 开发的前后端分离博客,可作为 Java 毕业设计项目!
功能特色:
提供博客前 ...
QPS到AQS的确定
-CoderOilStation
QPS到AQS的确定
分布式集群和多线程高并发随着企业向互联网方向的转型。企业数字化信息建设需要现在的AI技术前线搭桥。数字经济其实并不是十分稳定的金融商圈。方便便捷和分布式的解决方式很受市民大众的青睐和喜爱。并行处理需要很多硬件设备的适配连接和支撑。
多线程可以是企业用 ...
etcd 入门实战(3)-java 操作 etcd
本文主要介绍使用 coreos 提供的 Java 客户端(jetcd)来操作 etcd,文中所使用到的软件版本:etcd 3.5.18、jetcd 0.7.7。
1、引入依赖
<dependency>
<groupId>io.etcd</groupId>
<artifactId>jetcd-core</artifactId>
<version>0.7.7</version>
</dependency>
2、jetcd 使用
2.1、初始化客户端
@Before
publi ...
学生成绩管理系统
-CoderOilStation
学生需求
学生成绩管理系统
需求分析
学生成绩管理系统。
计算机专业的学生学制四年,每学期学习若干门课程。
学生成绩管理的一个子系统。
学院老师教授班级学生课程,学生考试课程试卷,生成成绩单。
项目设计
学院 compass
系别 prof ...
SQL解析工具JSQLParser
一、引言
JSQLParser(GitHub:https://github.com/JSQLParser/JSqlParser)是一个Java语言的SQL语句解析工具,功能十分强大,它可以将SQL语句解析成为Java类的层次结构,还支持改写SQL,常见的持久层框架MyBatis-Plus就采用它作为SQL解析工具来实现某些功能。
二、JSQLParser常见类
2.1 Class Diagram
2.2 Statement
可以 ...
Nacos配置中心自动加载JSON配置
在项目配置中,有个别场景需要通过nacos配置中心来维护一些项目中非spring上下文中的配置,比如:第三方特殊配置、一些非标准化的配置,想通过nacos来实现灵活管理与实时更新。这种需求场景下,我们可以通过Nacos中提供的两个注解来非常简单的实现我们需求。
@NacosConfig:需要声明在,由spring管理的bean中,比如:bean ...
秒杀/高并发解决方案+落地实现 (技术栈: SpringBoot+Mysql + Redis +RabbitMQ +MyBatis-Plus +Maven + Linux + Jmeter )-01
秒杀/高并发方案-介绍
@目录秒杀/高并发方案-介绍秒杀/高并发解决方案+落地实现 (技术栈: SpringBoot+Mysql + Redis +RabbitMQ +MyBatis-Plus +Maven + Linux + Jmeter )-01分布式会话 Session 共享加密密码设置注解自定义校验全局异常处理定义分布式 Session 共享分布式 Session 共享 详解分布式 Session 解决方案 1-Spri ...
TenantLineInnerInterceptor源码解读
一、引言
TenantLineInnerInterceptor是MyBatis-Plus中的一个拦截器类,位于com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor,通过MyBatis-Plus的插件机制调用,用于实现表级的多租户功能。
本文基于MyBatis-Plus的3.5.9版本的源码,并fork了代码: https://github.com/changelzj/mybatis-pl ...
如何给pdf文件加密,设置密码保护?完全免费!
前言
大家好,我是小徐啊。我们在开发Java应用的时候,经常是需要和pdf打交道的。
这极大地帮助我们提高了开发效率。
今天,小徐要来介绍一个给pdf文件加密的操作,注意,这个是完全免费的,一起来看看吧!
如何给pdf文件加密,设置密码保护?完全免费!
首先,我们打开微信,在搜索框里面,输入pdf编辑器小帮手,进行搜索 ...
如果让你改造下 HashMap 的扩容实现,你会怎样优化?
假设有一个 1G 大的 HashMap,此时用户请求过来刚好触发它的扩容.那么当前用户请求会被阻塞,因为 HashMap的底层是基于数组+链表(红黑树)来实现的,一旦它发生扩容,就需要新增一个比之前大2倍的数组,然后将元素copy到新的数组上
那么如何优化呢?
简要回答
此时可以借鉴 Redis 的 Hash 结构,因为 Redis 处理命令恰好是单 ...
好端端的线程池,怎么就卡死了?
写在前面
最近,我们的业务收到一项报障,线上某个业务模块偶尔会出现无法正常工作的情况。
经过多方排查,最终确认是线程池使用方式不合理导致的。鉴于线程池使用的普遍性和该类问题的隐秘性,本文将其中涉及的“坑”整理出来,与大家分享。
本文将尽可能淡化业务本身,着重介绍其中的技术问题。
场景说明
该业务链路有三 ...