自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (3)
  • 收藏
  • 关注

原创 初步学习压测和监控

摘要 本文介绍了基于Java开发的秒杀系统压测与监控实践。系统采用JDK 21开发,使用Prometheus+Grafana+Exporter三件套监控架构,在4核8G的Ubuntu服务器上进行测试。通过JMeter模拟4000并发用户测试秒杀接口,结果显示系统稳定性良好(0%错误率),平均响应119ms,吞吐量达到1987次/秒。监控数据显示Redis命中率100%,命令执行高效(50-200μs),服务器网络资源使用合理。文章提供了完整的代码和配置示例,指出了后续可优化的方向,如持续压测和订单处理逻辑完

2025-11-03 13:39:05 1030

原创 Mysql主从搭建

本文详细介绍了在CentOS7系统上搭建MySQL8.x主从数据库的完整步骤。主要内容包括: 准备工作:强调多台机器间网络互通、MySQL版本一致性,并提供了CentOS7环境下MySQL8的安装注意事项和旧环境清理指南。 MySQL安装配置:包含解压安装、环境变量设置、my.cnf配置文件详解(特别标注server-id必须唯一)、用户权限设置及初始化过程。 系统服务集成:将MySQL添加为系统服务并设置开机自启。 主从搭建准备:检查binlog状态,开放3306端口,通过示例图说明主从同步原理。 特别注

2025-07-28 16:09:34 932

原创 Sentinel入门篇【流量治理】

本文介绍了阿里巴巴开源的分布式系统流量治理组件Sentinel的基本功能和使用方法。主要内容包括: Sentinel的流量控制和熔断降级两大核心功能,支持QPS/线程数限流、冷启动、匀速排队等策略; 通过响应时间、异常比例等指标实现熔断降级,防止服务雪崩; 详细演示了Sentinel控制台的部署和SpringBoot整合过程; 重点解析了流控规则配置,包括QPS和线程数两种模式下的不同选项设置。Sentinel作为轻量级流量治理组件,可以有效保障微服务架构的高可用性。

2025-07-08 18:58:54 750

原创 Redis下篇--分布式锁

Redis分布式锁简介 Redis分布式锁是一种基于Redis实现的跨进程互斥机制,用于控制分布式系统中多个节点对共享资源的并发访问。相比本地线程锁,它解决了集群环境下无法保护跨进程共享资源的问题。 核心实现要点: 使用SET命令结合NX(不存在才设置)和EX(过期时间)参数实现原子性加锁 通过唯一value值避免误删其他线程的锁 设置合理过期时间防止死锁 典型应用场景包括: 防止重复操作(如订单提交) 高并发库存扣减 分布式任务调度 相比数据库锁和Zookeeper实现,Redis分布式锁具有更好的性能和

2025-06-22 14:51:40 750

原创 Redis中篇--应用

Redis应用中的缓存问题分析文章分析了Redis作为缓存时可能遇到的两种典型问题:缓存击穿 - 热点key过期时大量请求直接访问数据库。解决方案包括:互斥锁、逻辑过期、热点key预刷新等。缓存穿透 - 查询不存在的数据导致请求直达数据库。解决方案包括:缓存空值、布隆过滤器等。针对热点key问题,文章详细探讨了监测和预防措施,如客户端访问记录、Redis监控命令、京东热点数据监测方案等。对于穿透问题,提出了参数过滤和布隆过滤器等优化方案。文章内容详实,配有示意图和代码示例,优快云和微信公众号

2025-06-16 21:40:44 695

原创 Redis上篇--知识点总结

**Redis** 是一个开源的、高性能的 **内存键值数据库**,Redis 的键值对中的 **key 就是字符串对象**,而 **value 就是指Redis的数据类型**,可以是String,也可以是List、Hash、Set、 Zset 的数据类型。Redis通常被用作数据库、缓存、消息中间件和实时数据处理引擎。它以速度极快、支持丰富的数据结构而闻名,是现代应用架构中非常流行的组件。

2025-06-09 16:49:17 1167

原创 网络编程--下篇

《网络编程下篇》摘要本文承接上篇网络编程内容,重点分析了NIO与Netty实现原理。首先对比BIO模型,指出其线程阻塞和内存消耗问题。详细讲解操作系统级多路复用技术,从select/poll到epoll的演进,以及Java NIO的Selector实现机制。在Netty部分,深入剖析其异步编程模型,比较JDK Future与Netty Future/Promise的区别,重点解释sync()和await()方法的实现原理与使用场景:sync()会检查异常并重新抛出,而await()仅阻塞等待。本文配套代码

2025-06-05 20:11:06 1035

原创 网络编程--上篇

网络编程基础摘要本文总结了计算机网络的核心概念,主要包括:网络模型:介绍了OSI七层模型和TCP/IP四层/五层模型的分层结构,及其设计意义。关键协议:传输层:TCP(可靠连接)与UDP(高效无连接)的特点对比应用层:HTTP(单向请求响应)与WebSocket(全双工实时通信)的异同安全协议:HTTPS的加密机制与传统HTTP的区别其他协议:FTP、DNS、SSH等协议的基本功能TCP连接管理:简要说明了三次握手(SYN-SYN/ACK-ACK)建立可靠连接的机制。网

2025-05-27 19:44:25 706

原创 限流算法 + dfa敏感词过滤算法

本文探讨了社交场景中的限流和敏感词过滤技术。首先,通过社交平台实时评论审核和电商平台评论/私信接口防刷两个场景,介绍了限流和敏感词过滤的必要性。接着,详细分析了两种常见的限流算法:固定窗口限流和滑动窗口限流。固定窗口限流简单易实现,但存在边界突刺问题;滑动窗口限流通过动态滑动时间窗口,解决了边界问题,限流更加精准。最后,文章提供了Java代码示例,展示了如何实现这两种限流算法。通过这些技术,可以有效防止系统被恶意流量冲垮,同时确保内容合规,提升用户体验。

2025-05-18 19:57:40 1006

原创 SpringBoot3+AI

SSE(Server-Sent Events)是一种基于HTTP的轻量级协议,允许服务器主动向客户端推送数据,适用于实时通知、日志流等场景。与WebSocket不同,SSE仅支持单向通信(服务器→客户端),且浏览器原生支持,无需额外插件。SSE通过HTTP长连接实现,客户端使用EventSource API接收数据,服务器返回text/event-stream格式的文本流。SSE具有自动重连机制,适合无需双向通信的场景,如GPT问答形式。在Spring Boot中,可以使用SseEmitter实现SSE功能

2025-05-18 19:55:24 1149 1

原创 ThreadLocal原理分析--结合Spring事务

ThreadLocal 是 Java 中用于实现线程局部变量的工具,它为每个线程提供独立的变量副本,确保线程间的数据隔离,从而避免多线程环境下的共享变量问题。通过 set()、get() 和 remove() 方法,线程可以操作自己的局部变量,而不会影响其他线程。ThreadLocal 的核心思想是通过 ThreadLocalMap 存储每个线程的变量副本,键为 ThreadLocal 对象,值为变量值。

2025-05-12 17:12:59 897

原创 spring详解-循环依赖的解决

本文都快写完了,发现“丈夫” 的英文是… 在“②有AOP循环依赖” 改过来了,前面用到的位置太多了就没改。我是说怎么idea的hansband英文下面怎么有波浪线。各位能够理解意思就行,英文拼写不要过于在意.

2025-05-06 22:27:27 1369 2

原创 并发编程--下篇

自定义一个读写锁学一下jdk源码,写一个内置的Sync同步器,低位16位记录写锁重入次数,高位16位记录读锁获取次数// 内置同步器// 写锁方法(tryAcquire/tryRelease)-- 独占// 如果存在读锁或写锁(且持有者不是当前线程),获取失败if (state!= 0) {// writeCount是0,但是state不是0,说明有线程获取到了读锁// 检查是否超过最大重入次数(低16位是否溢出)throw new Error("超出最大重入次数");

2025-05-02 22:06:00 791

原创 Java并发探索--上篇

前面分析可以知道ReentrantLock是以AQS为基础框架来实现的,那么,此节我们自定义来实现一个锁。见 “Java并发探索–下篇”

2025-04-28 20:37:03 788

原创 Bean生命周期

在经过三篇文章的分析过后,我们对Spring容器的创建过程有了一个大致的认识:我们都知道是在方法里面进行的,本文就来对Bean的生命周期作一个总结,本文就不探讨具体源码了。通过对该方法的源码查看调试,我们得知invokeBeanFactoryPostProcessors方法会把所有实现BeanFactoryPostProcessor和BeanDefinitionRegistryPostProcessor的类进行实例化和调用。BeanDefinitionRegistryPostProcessor :: pos

2025-04-22 20:16:29 744

原创 Spring-AOP分析

在上一篇文章中,【】【https://www.cnblogs.com/jackjavacpp/p/18829545】,我们了解到了IOC容器的创建过程,在文末也提到了AOP相关,但是没有作细致分析,这篇文章就结合示例,来详细分析一下Spring-AOP。本文章示例代码见该仓库:【】中的“spring”模块。仓库地址:https://gitee.com/quercus-sp204/sourcecode-and-demos。

2025-04-21 16:57:02 1105

原创 Spring分析-IOC

Spring 是一个基于 Java 平台的开源全栈应用程序框架,也是一个控制反转(IoC)容器实现。Spring IoC 容器即 Spring 框架中负责管理“Bean”(由容器实例化、配置并组装的普通 POJO 对象)的核心组件。容器读取配置元数据(XML、注解或 Java 配置类),解析 Bean 定义,然后在启动或按需时实例化 Bean,完成依赖注入,并负责 Bean 的整个生命周期管理。

2025-04-16 20:22:47 1191

原创 SpringBoot启动run方法分析

经过第二大节的整体分析,我们大致可以知道在容器刷新之前,由于是Servlet的Application,故由模板方法运行创建Servlet容器,ServletContextListener接口contextInitialized会先执行。调用构造方法创建bean对象,实例化Aware 接口InitializingBean接口的afterPropertiesSet()自定义的initMethodRunners对于Spring的容器创建、bean的创建、以及事件等内容的详细分析,请见后续文章。

2025-04-05 12:21:05 918 1

原创 Mybatis源码分析

Mybatis源码也是对Jbdc的再一次封装,不管怎么进行包装,还是会有获取链接、preparedStatement、封装参数、执行这些步骤的。本文来探索一下其运行原理。下面从最简单的mybatis使用案例,来看看mybatis的步骤。

2025-04-01 22:00:35 849

原创 Java中的Map & CAS & AQS

原本是想在写完ConcurrentHashMap后,把cas补上,谁知道先写了cas,aqs。。。。AQS 即 AbstractQueuedSynchronizer【抽象队列同步器】,是 Java 并发包中很多同步器实现的基础框架,如Semaphore等。AQS作为一个抽象类,通常是通过继承来使用的。它本身是没有同步接口的,只是定义了同步状态和同步获取和同步释放的方法。用于构建锁和同步器,它提供了一种在多线程环境下管理同步状态(state)、线程排队等待以及线程唤醒的机制。

2025-03-23 14:02:44 644

原创 数据库MVCC详解

数据库:MySQL。【很多主流数据库都使用了MVCC,比如MySQL的InnoDB引擎、PostgreSQL、Oracle】MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。是数据库管理系统中的一种并发控制方法。它通过保存数据的历史版本来实现,这样。这样的话,提高了并发性能。比如说,当一个事务开始读取数据时,它会看到数据库在某个时间点的快照,之后即使其他事务修改了数据,这个事务看到的还是旧版本的数据,直到它提交或者回滚。

2025-03-20 21:31:10 1658

原创 SPI机制

不修改代码,根据加载的包不同,调用不同的实现方式。先定义接口提供者创建项目里面只定义一个接口 UserService

2025-02-28 15:27:33 640

原创 Rpc导读

GTIEE:https://gitee.com/quercus-sp204/all-rpc 【参考源码 yrpc】

2025-02-21 15:43:47 1213

原创 跟着路线混,三天饿九顿

java基本语法、常用类String,包装类,时间,大数计算等等。java集合【适当debug跟进源码,list,set,map,queue,栈等等】java多线程【各种锁、线程间通信、线程安全的集合类、进程与线程、ThreadLocal,CompletableFuture…】网络编程 【阻塞式io,同步非阻塞io】java反射的使用。

2025-02-19 16:50:00 376

原创 Spring定时任务的秘密

在 Spring 框架中,定时任务主要通过@Scheduled注解或接口实现。

2025-02-14 10:06:19 607

原创 数据库事务详解

今天聊一聊数据库的事务,这里以MySQL为例子。在MySQL中,事务(Transaction)是一组SQL操作的集合,这些操作要么,确保数据的一致性和完整性。。

2025-01-22 19:29:58 1292

原创 SpringBoot原理分析-1

*自动配置: **以spring-boot-starter-web为例子,引入该启动器,他的父级pom里面有spring-boot-starter,spring-boot-starter的父级pom有spring-boot-autoconfigure。spring-boot-autoconfigure里面有Spring官方定义的所有场景。注解:这是自动配置的入口,通常由注解组合引入。文件:Spring Boot 通过文件加载自动配置类。条件化配置:通过系列注解(如等)实现按需加载配置。

2025-01-05 15:16:23 802

原创 Nginx + Lua脚本打配合

今天实现一个非常简单的例子.那么就可以通过nginx反向代理,就达到了不暴露端口的目的了。但是,我又不想别人随便访问,要加一些限制。比如必须要有指定的请求头。用nginx配置就行了呗。但是,还是不安全呐,随便别人如果F12查看请求的话,还是可以发现我的请求头啊。他随便捏造一个也可以访问这个应用了呀。我这里是宝塔面板的openresty,安装的自带有redis模块。(这个安装就不放了)

2024-12-23 20:00:50 802

原创 代理&动态代理

这些例子都展示了代理模式如何在不同的场景中提供了对“真实对象”的间接控制。通过上面这些例子,可以看到“代理”大致有三个角色:客户端(使用者)、代理(中间层)、真实对象(交付委托的对象、目标对象)。通过使用代理模式,系统能够在不直接暴露真实对象的情况下,提供更多的控制和优化,这对于实际的软件设计和架构非常重要。

2024-12-02 16:38:15 755

原创 批量插入操作

记录一次批量操作数据库,sqlServer服务器参数过多问题。

2024-11-28 14:29:23 1154

原创 Java Stream与多线程

学习了尚硅谷的JUC,周阳老师讲的商城比较价格的案例,自己模拟了一个多线程的demo, 多线程处理任务并且汇总结果,出现了疑问,实例代码放在下面,读者有兴趣的话可ctrl+cv玩一玩

2023-08-31 09:08:35 469

原创 Redis序列化、乱码问题

Redis序列化

2023-01-16 10:40:08 1839

原创 考研图论算法

tulun

2022-10-20 11:54:13 493

原创 PTA 浪漫侧影(25分)

PTA 浪漫侧影

2022-04-19 12:37:20 1292

原创 SpringSecurity 入门

SpringSecurity 入门一步一步来。集各家之所长,师从 尚硅谷、狂神、三更草堂;如果文中发现跟他们有类似的,不用想,就是他们那里拿来的事先声明,本人很菜,其中有说的误人子弟的,请大家指出来。环境:idea2020.1 SpringBoot2.6.3 MyBatisPlus Maven3.6.3 SpringSecurity Lombok MySQL8.0.23…总述:先根据三家总的说一下,大致可以划分为两类: **1.**前后端不分离 *

2022-02-16 14:54:19 1194

原创 蓝桥杯 试题 历届真题 左儿子右兄弟

2022-01-30 13:19:23 2818 2

原创 自己做的学生社团网站--。。

在我的资源里面找吧,承诺免费

2021-11-29 11:58:41 601 2

原创 洛谷P1114 “非常男女”计划

洛谷P1114 “非常男女”计划题目:题目描述近来,初一年的XXX小朋友致力于研究班上同学的配对问题(别想太多,仅是舞伴),通过各种推理和实验,他掌握了大量的实战经验。例如,据他观察,身高相近的人似乎比较合得来。万圣节来临之际,XXX准备在学校策划一次大型的“非常男女”配对活动。对于这次活动的参与者,XXX有自己独特的选择方式。他希望能选择男女人数相等且身高都很接近的一些人。这种选择方式实现起来很简单。他让学校的所有人按照身高排成一排,然后从中选出连续的若干个人,使得这些人中男女人数相等。为了使活

2021-11-14 13:06:41 1015 2

原创 洛谷 P1141 01迷宫

洛谷 P1141 01迷宫BFS或者并查集题目描述有一个仅由数字0与1组成的n×n格迷宫。若你位于一格0上,那么你可以移动到相邻4格中的某一格1上,同样若你位于一格1上,那么你可以移动到相邻4格中的某一格0上。你的任务是:对于给定的迷宫,询问从某一格开始能移动到多少个格子(包含自身)。输入格式第1行为两个正整数n,m。下面n行,每行n个字符,字符只可能是0或者1,字符之间没有空格。接下来m行,每行2个用空格分隔的正整数i,j,对应了迷宫中第i行第j列的一个格子,询问从这一格开始能移动到多少

2021-11-12 21:58:22 298

原创 试题 算法训练 预备爷的悲剧

试题 算法训练 预备爷的悲剧题目资源限制时间限制:1.0s 内存限制:512.0MB问题描述英语预备爷gzp是个逗(tu)比(hao),为了在即将到来的英语的quiz中不挂科,gzp废寝忘食复习英语附录单词表,俨然一场人间悲剧。不过上天有好生之德,上帝扔给了gzp一张纸,上面记载了将要考到的单词。不过gzp是个逗比,之前复习的东西全忘记了,所以他又要再来一次复习。不过已经知道了要考的单词,所以不需要复习单词表的所有页数。因此,现在需要你帮助他求出有多少页纸需要复习。他会告诉你每个单词会在哪几页

2021-11-11 15:51:56 1172

你们需要的前缀和差分在这个里面.pdf

适合中国人

2021-10-25

SpringSecuritydemo01

无描述, 数据库工具navicat

2022-02-16

学生社团网站-功能待完善,SpringBoot

SpringBoot Thymeleaf MySQL ajax jquery

2021-11-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除