自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

群群的博客

热爱学习,自我总结。

  • 博客(57)
  • 收藏
  • 关注

原创 分库分表下的分页查询

每次插入业务数据时,同时在索引表中插入一条记录,索引表按排序字段全局排序(或通过分片键保证局部有序)。由应用层向所有分片发起查询,每个分片执行相同的 SQL(带 ORDER BY 和 LIMIT offset, size),然后应用层接收到所有分片返回的数据后,在内存中进行归并排序,最后取出全局第 offset 到 offset+size 条记录。利用排序字段的唯一性(例如主键或时间戳+ID),每次查询时携带上一页最后一条记录的排序字段值,然后查询所有分片中大于该值的记录,再合并排序取前 size 条。

2026-03-13 18:09:29 288

原创 SpringCloud-微服务拆分

Spring Cloud作为构建微服务的一套完整解决方案,提供了服务发现、配置管理、网关、负载均衡等组件,极大简化了微服务架构的落地。拆分后的每个服务对应一个特定的业务能力,拥有自己的数据库(或数据存储),服务之间通过网络通信。· 按业务能力拆分(Vertical Decomposition):根据业务功能划分,例如电商系统的“订单服务”、“用户服务”、“商品服务”、“支付服务”。这些组件在微服务拆分后,解决了服务发现、配置管理、流量入口、容错、监控等问题,使得分布式系统能够像单体一样方便地开发和运维。

2026-03-08 09:41:49 442

原创 OpenClaw安装与使用

OpenClaw(曾用名 ClawdBot/Moltbot)是一个开源的个人AI助理,可以部署在你自己的电脑或云服务器上,让你通过飞书、钉钉等聊天工具,操控它处理邮件、管理文件等任务。它的核心特点是本地优先、数据可控,并且拥有强大的“技能”(Skills)扩展能力。💡 重要提醒:OpenClaw功能强大且涉及系统操作,出于隐私和安全考虑,如果你的主力电脑存有重要资料,强烈建议使用一台备用机、虚拟机(如WSL2)或直接租用云服务器来运行。下面整理了不同环境下的安装与使用指南,你可以根据自己的情况选择。

2026-03-07 17:12:31 932

原创 如何把 AI 大语言模型接入个人项目

本地部署开源模型 隐私敏感、离线环境、长期运行 Llama 3,Qwen,ChatGLM,Mistral 仅硬件/电费 完全本地,数据安全 取决于硬件。国内厂商(如阿里通义千问、百度文心、智谱AI)的调用方式类似,只需更换base_url和api_key,部分可能需要使用专属SDK。· 增强:结合RAG(检索增强生成)让模型能访问外部知识库,或接入工具调用(Function Calling)实现自动化操作。推荐工具:Ollama(最简单)、Llama.cpp(轻量)、Transformers(灵活)

2026-03-02 09:25:43 517

原创 深入浅出 MVCC —— 从零理解 MySQL 并发控制

在 Read View 中,如果一个版本的事务 ID 属于活跃事务(未提交),则该版本不可见。· T5 时刻,重新生成 Read View(活跃事务为空),此时最新版本已提交(trx_id=10),因此读到 name=‘B’,出现不可重复读。· 在 可重复读(RR) 级别下,事务第一次执行快照读时生成 Read View,后续所有快照读都复用这个视图,从而保证可重复读。· 在 读已提交(RC) 级别下,每次快照读都会重新生成 Read View,因此可能读到其他事务已提交的最新数据(不可重复读)。

2026-02-26 16:27:00 395

原创 G1垃圾回收器启动时 CPU 飙升的原因分析

元空间(Metaspace)膨胀:如果动态加载大量类(如反射、CGLIB),元空间达到阈值会触发Full GC(使用串行回收)。· 频繁的GC(吞吐量下降):当对象分配速度极快,超过G1的回收速度时,会导致GC频繁执行。GC线程与应用线程并发执行,会扫描整个堆中存活对象,这涉及大量的内存读取和图遍历操作,会持续占用CPU资源。当计算压力大,或选定大量CSet(回收集合)进行并行回收时,多线程压缩对象也会导致CPU短暂冲高。· 误区:滥用大内存:堆内存过大,并发标记周期变长,GC持续消耗CPU。

2026-02-24 10:04:59 156

原创 Spring Boot JWT Token 认证

常见做法是登录时返回 access_token(短效)和 refresh_token(长效),并提供刷新端点。· 生成 access_token 和 refresh_token,refresh_token 存储在数据库(或 Redis)中。· 过期时间:access_token 不宜过长(如 15-30 分钟),refresh_token 可长一些(如 7 天)。· Payload(载荷):包含实体(通常是用户)的声明,例如用户 ID、角色、过期时间等。

2026-02-23 14:01:08 818

原创 MySQL 分布式锁实现方案

对于高性能要求的场景,建议考虑 Redis 或 ZooKeeper 作为分布式锁的实现方案。GET_LOCK() MySQL原生支持 会话级别,连接断开自动释放 简单同步需求。基于行锁 实现简单,强一致 性能较低,可能死锁 低并发,强一致性要求。乐观锁 并发性好 需要重试机制 并发冲突少的场景。二、基于GET_LOCK()函数的方案。· 并发量不高(QPS < 1000)· 系统简单,不希望引入额外中间件。Spring Boot 集成。一、基于数据库表的方案。· 需要强一致性保证。

2026-02-07 21:00:11 341

原创 基于SpringBoot的选课调查系统

前端: Vue 3 + Element Plus / React + Ant Design。· 持久层: MyBatis-Plus / Spring Data JPA。· 安全框架: Spring Security + JWT。· 消息队列: RabbitMQ(可选,用于通知)· 后端框架: SpringBoot 2.7+· 部署: Docker + Nginx。· 数据库: MySQL 8.0。· 缓存: Redis。三、API接口设计示例。

2026-02-01 09:24:44 84

原创 MySQL - 基础增删查改

三、数据操作(CRUD)

2026-01-26 12:53:33 347

原创 Spring AI简介

它不构建底层大模型,而是作为 “中间层” ,将你的 Java/Spring 业务系统与各类 AI 模型(如 OpenAI、Azure OpenAI、Google Gemini 等)连接起来,解决企业 AI 开发中技术栈碎片化、工程化复杂等痛点。总而言之,如果你或你的团队熟悉 Spring 技术栈,并希望在企业应用中快速、稳健地引入 AI 能力,Spring AI 是目前 Java 生态中最值得考虑的框架之一。· 智能代理:通过工具调用,让 AI 自动执行复杂工作流,如数据分析、报告生成。

2026-01-03 15:50:59 329

原创 JVM对象分配内存如何保证线程安全?

XX:-DoEscapeAnalysis 关闭逃逸分析(影响栈分配)· TLAB大小:通过-XX:TLABSize调整,默认动态自适应。· ParNew:多线程并行收集,但分配时每个线程有独立指针。-XX:+ResizeTLAB 允许动态调整TLAB大小。-XX:+UseTLAB 启用TLAB(默认开启)-XX:TLABSize 设置初始TLAB大小。· 使用-XX:+UseNUMA优化多路CPU。· 通过-XX:+UseParNewGC启用。· 优点:大部分小对象分配无竞争。

2025-12-10 19:13:24 444

原创 SpringBoot 网络流量抓包与分析系统

下面我将设计一个基于SpringBoot的网络流量抓包与实时分析系统。这个系统将能够捕获网络数据包,进行实时分析,并通过Web界面展示结果。系统架构设计实现步骤数据包捕获服务数据包处理器Web控制器WebSocket配置前端界面 (HTML + JavaScript)系统功能说明运行注意事项这个系统提供了基本的网络流量监控功能,可以根据实际需求进一步扩展,比如添加协议分析、流量告警、历史数据查询等功能。

2025-09-04 18:31:29 758

原创 MyBatis Plus 实现数据权限控制

获取当前用户的权限条件(如部门ID、角色范围等)

2025-08-15 08:31:53 663

原创 synchronized的实现原理?

锁状态适用场景优点缺点偏向锁单线程重复访问无竞争时零开销撤销有暂停时间轻量级锁低并发、短时同步块避免阻塞,自旋开销小自旋消耗 CPU重量级锁高并发、长时操作避免 CPU 空转上下文切换开销巨大优化方向减少同步块作用域(如缩小锁粒度)。高并发场景使用显式锁(如Condition避免在循环内使用重量级同步。

2025-07-16 06:40:13 959

原创 Spring Boot + 本地部署大模型实现:优化与性能提升!

在Spring Boot中集成本地部署的大模型(如LLaMA、ChatGLM等)并进行优化,需要从模型选择、推理加速、资源管理和架构设计等多方面入手。

2025-07-06 08:33:13 1353

原创 RocketMQ延迟消息是如何实现的?

RocketMQ的延迟消息实现机制非常巧妙,其核心是通过来实现的。

2025-07-04 23:00:16 1319

原创 Java调用百度地图天气查询服务获取当前和未来天气-以江苏省南京市为例

行政区编码查询:通过(行政区编码)获取天气数据经纬度查询:通过location参数(需开通高级权限)本文使用行政区编码方式,南京市的编码为320100(市本级)或精确区县编码如玄武区320102int code;// 状态码(0表示成功)Now now;// 实时天气// 未来预报// 位置信息int temp;// 温度(℃)// 天气现象(如"多云")int rh;// 湿度(%)// 风向// 日期(格式:yyyy-MM-dd)int high;// 最高温(℃)

2025-07-04 13:13:33 599

原创 MySQL的深度分页如何优化!

适用于大多数场景,对应用层改动较小,效果显著。关键是创建正确的覆盖索引。性能最优,无OFFSET瓶颈。需要应用层配合存储游标。将计算压力转移到后台。减少单次扫描范围。是否真的需要深度随机跳页?优化产品设计往往是性价比最高的方案。使用EXPLAIN分析查询执行计划,确认是否使用了预期的索引。选择哪种方案取决于你的具体数据量、访问模式、排序需求、实时性要求以及对应用层改动的接受程度。通常延迟关联和游标分页是解决深度分页性能问题最直接有效的武器💪。

2025-07-03 13:36:44 1103

原创 SpringBoot 自动配置原理

Spring Boot 的自动配置是其“约定优于配置”理念的核心体现,它极大地简化了 Spring 应用的初始搭建和开发过程。理解自动配置原理对于调试 Spring Boot 应用、理解其行为、以及进行高级定制(如创建自己的 Starter)至关重要。这些自动配置类负责创建默认的、开箱即用的组件 Bean。日志,了解哪些自动配置类生效/未生效及其原因。,找到声明的自动配置类列表。Spring Boot 在启动时会。

2025-07-02 23:08:33 887

原创 Postman介绍及使用

Postman 是一个强大的 API 开发、测试和文档化工具,广泛用于开发者、测试人员和 API 设计者。

2025-06-29 10:44:00 758

原创 MyBatisPlus介绍及使用

MyBatis-Plus 是 Java 后端开发的“效率加速器”,

2025-06-29 09:21:13 1432

原创 deepseek本地部署,拒绝服务繁忙。你的本地AI助手来了~

最近Deepseek持续爆火,相信各位都已经在官网体验过了,估计也都遇到了下面的问题。这个问题据说是为了公平,让每个人都能体验到Deepseek,在算力紧张时会限制一轮对话只有一个回答,后续提问直接返回“服务器繁忙,请稍后再试”。下面介绍两种在本地部署使用Deepseek的方法,各有优劣。

2025-02-10 20:22:19 1037

原创 利用DeepSeek进行java代码审计,好用!

java中的readObject可以读取输入,并且把它们转换对象,而ObjectInputStream.readObject()是将输入流中读取需要,再将其反序列为对象,这也就符合反序列化漏洞的特征,而要注意的就是代码中会把读取的输入用Base64解密,所以我们要构建payload时应是Base64加密的。

2025-02-03 18:19:59 1941 1

原创 DeepSeek全方位指南:10分钟快速上手!

DeepSeek 是一款基于命令行和配置文件的数据处理工具,支持多种数据格式(如 CSV、JSON、SQL 等)和多种数据源(如本地文件、数据库、API 等)。数据导入与导出:支持从多种数据源导入数据,并将处理结果导出为多种格式。数据清洗与预处理:提供去重、缺失值填充、数据类型转换等功能。数据分析与建模:支持统计分析、回归分析、聚类分析等高级功能。数据可视化:内置多种图表类型,支持生成柱状图、折线图、散点图等。插件扩展:支持通过插件扩展功能,满足个性化需求。

2025-02-02 19:25:37 3908 1

原创 Java线程池为什么先入队列再增加线程数?

哈喽,大家好。

2024-10-06 18:49:55 1183

原创 springboot整合redis实践消息发布订阅特性!!!

springboot框架整合redis实现发布订阅消息模式,将消息发布到redis一个主题topic,当有订阅到这个topic会接收到这个消息并进行消费。1、首先实现MessageListener接口,这个接口是spring-data-redis整合包。2、实现onMessage方法,当有订阅到topic消息,会接收到Message消息。3、代码方法可以对消息进行消费处理。

2024-09-21 18:31:14 310

原创 SpringCloud 常见10个调优场景!!!

Bean// 使用加权响应时间规则在进行Spring Cloud调优时,重要的是理解每个组件的工作原理以及如何配置它们以适应你的具体需求。这些示例只是入门,实际应用中可能需要根据具体场景进行更深入的分析和调整。此外,使用监控工具(如Spring Boot Actuator、Micrometer)可以帮助你更好地了解服务的运行状态并做出相应的优化决策。

2024-09-20 22:45:06 694

原创 token是用来鉴权的,那session是用来干什么的?

在这个场景中,JWT用于无状态的用户认证,提供便捷和扩展性;Session作为辅助,提供额外的安全性和状态管理。通过这种结合,可以充分利用两者的优点,确保系统既具备高扩展性,又能提供细致的安全控制。

2024-09-19 22:54:09 431

原创 升级 JDK17 一个不可拒绝的理由!

随着ZGC的出现, 使得这一痛点彻底解决, ZGC 最初在 JDK 11 中作为实验性功能引入,并在 JDK 15 中宣布为生产就绪, 由于 JDK17 才是比较正式提供给大众实用的LTS支持版本,而且一部分公司已经在使用,所以本文力推 JDK17。垃圾回收器的暂停问题对实时响应要求较高的服务来说,一直是个痛点, CMS和G1等主流垃圾回收器的数十毫秒乃至上百毫秒的暂停时间相当致命。这么短的GC, 可以保证,应用因为JVM层面的卡顿都保持在 1ms 以内, 这也是为啥说这点才是不能拒绝的理由。

2024-09-16 17:55:22 1129 1

原创 Spring Boot实现多数据源!!!

Spring Boot实现多数据源快速入门!!!

2024-05-27 13:37:08 619 1

原创 SpringBoot 集成支付宝支付!!!

使用的Post接口,因为官方建议处理付款成功后的操作在异步调用方法中,异步调用为post请求,异步回调方法必须为公网IP,因为支付宝是基于公网访问,访问不了localhost,需要代理,设置公网IP有两种方案,1、内网穿透,2、将项目部署到服务器,我们项目使用的是内网穿透,使用的是natapp,配置一条免费的隧道,在idea中配置notifyurl接口。RabbitMQ可以针对Queue和Message设置 x-message-tt,来控制消息的生存时间,如果超时,则消息变为dead letter。

2023-12-20 14:08:50 211 1

原创 SpringBoot最常用的注解!!!

作用:用于自动生成JavaBean的getters、setters、toString、hashCode和equals方法。作用:用于将一个方法返回的对象注册到Spring容器中。作用:用于标识一个类是Spring容器中的服务组件。作用:用于将方法的返回值转换为HTTP响应的主体。作用:用于自动装配Spring容器中的Bean。作用:用于标识一个类是Spring容器中的组件。作用:用于标识一个类是Spring的配置类。作用:用于在方法执行前后执行通知。作用:用于缓存方法的返回值。作用:用于更新缓存中的数据。

2023-09-06 13:29:15 176

原创 Spring Boot 如何做好性能优化!!!

如果你的项目并发量比较高,想要修改最大线程数、最大连接数等配置信息,可以通过自定义 Web 容器的方式,代码如下所示。注意上面的代码:我们设置了它的协议为org.apache.coyote.http11.Http11Nio2Protocol,意思就是开启了 Nio2。这个参数在T omcat8.0 之后才有,开启之后会增加一部分性能。对比如下:lastName=lastName=lastName=lastName=

2023-09-01 16:17:22 446

原创 Spring Boot 快速实现 IP 地址解析!!!

本篇带大家实践在spring boot 项目中获取请求的ip与详细地址,我们的很多网站app 中都已经新增了ip 地址显示,大家也可以用在自己的开发中,显得更高级。

2023-08-16 16:50:25 277 1

原创 Spring Boot 实现通用 Auth 认证的 4 种方式!!!

最近一直被无尽的业务需求淹没,没时间喘息,终于接到一个能让我突破代码舒适区的活儿,解决它的过程非常曲折,一度让我怀疑人生,不过收获也很大,代码方面不明显,但感觉自己抹掉了 java、Tomcat、Spring 一直挡在我眼前的一层纱。对它们的理解上了一个新的层次。好久没输出了,于是挑一个方面总结一下,希望在梳理过程中再了解一些其他的东西。由于 Java 繁荣的生态,下面每一个模块都有大量的文章专门讲述。所以我选了另外一个角度,从实际问题出发,将这些分散的知识串联起来,各位可以作为一个综述来看。

2023-08-13 14:10:42 453 1

原创 这才是 SpringBoot 统一登录鉴权、异常处理、数据格式 的正确姿势!!!

本篇将要学习 Spring Boot 统一功能处理模块,这也是 AOP 的实战环节。

2023-08-06 18:19:42 459

原创 Redis和Mysql如何保证数据一致性?

Redis和Mysql如何保证数据一致性?

2023-07-30 18:35:00 183

原创 SpringBoot后端接口规范

因为HTTP协议是无状态的,Token的设计方案是用户在客户端使用用户名和密码登录后,服务器会给客户端返回一个Token,并将Token以键值对的形式存放在缓存(一般是Redis)中,后续客户端对需要授权模块的所有操作都要带上这个Token,服务器端接收到请求后进行Token验证,如果Token存在,说明是授权的请求。如果在缓存中的签名失效的情况下,有人使用同一个URL再次访问,则会被时间戳超时机制拦截,这就是为什么要求sign的超时时间要设定为跟时间戳的超时时间一致。

2023-07-10 13:32:47 402 1

原创 SpringBoot2.0集成MQTT消息推送功能实现

如果不指定,则使用默认配置的主题。这几天在弄后端管理系统向指定的Android客户端推送消息的功能模块,查阅了网上很多博客介绍的许多方式,最终选择基于MQTT协议来实现,MQTT是一个轻量级的消息发布/订阅协议,它是实现基于手机客户端的消息推送服务器的理想解决方案。最后,写个接口类测试下功能,用Postman调用sendMqtt.do接口,往hello主题发送消息,用MQTTLens订阅hello主题,从下面截图,可以看出可以正常往MQTT服务发送消息了,而且可以订阅到。第三,配置MQTT消息推送配置类,

2023-06-17 13:49:06 1075

空空如也

空空如也

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

TA关注的人

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