- 博客(113)
- 收藏
- 关注
原创 RabbitMQ消息堆积问题排查:concurrentConsumers 配置的坑与解决方案
• concurrentConsumers:初始并发消费者数• maxConcurrentConsumers:最大并发消费者数• 两者需要配合使用,只设置最大值不会生效。
2025-09-02 14:31:49
718
2
原创 Docker部署Spring Cloud微服务实战
在之前的springcloud项目打包实战中,我们已经学会了如何把springcloud中的应用打包成jar包,但是用jar包运行有很大的缺点,比如如果你想要把它放到Linux服务器上运行,你必须下载linux对应版本的jdk,再者,如果你还想顺带一起部署中间件,如mysql,redis,这些中间件在各个平台都有不同的安装包和部署方式,非常难以部署。为了降低运维难度,可以使用docker来进行部署。我们当然首先要学会如何打包和使用jar包,如果不会的话。
2025-08-15 16:38:54
471
2
原创 你的 Maven 打包姿势过时了吗?Maven打包spring cloud微服务实战解析
在 Java 开发中,Maven 是最常用的项目管理工具之一,它不仅能管理依赖,还能自动化构建、测试和打包项目,相信maven的依赖管理功能很多人已经会熟练使用了,这次正好使用一下maven的打包功能。
2025-08-14 16:59:25
1149
原创 gitlab仓库如何进行多人协作
使用gitlab仓库是工作和项目开发中的必备技能,它的使用和github的开源PR机制有所不同,这样设计是为了拥有更加精细的权限设计。
2025-08-14 14:28:13
386
1
原创 Spring cloud集成ElastictJob分布式定时任务完整攻略(含snakeyaml报错处理方法)
ElasticJob 适合分布式场景,Zookeeper 是其注册中心核心组件。推荐Java API 启动任务,方便在 Spring Boot 中集成。SnakeYAML 报错可通过版本统一或自定义 Representer解决。我是PXM,点个关注不迷路。
2025-08-13 17:33:23
1170
2
原创 spring gateway配合nacos实现负载均衡
再编辑这个实例的配置,用同样的找到添加虚拟机选项设置,并写上-Dserver.port=新端口号,我们就有两台同样的服务了。接下来我们在idea里面找到服务列表,右键现有demo服务->编辑所选配置->修改选项->允许多个实例。我们在配置文件中写上相应的路由配置,假设我们已经配置了一个名为demo的服务。我的网关服务部署在8888端口,我们提前写好相关接口/user/test。代表要去掉的地址数,意味着在我进行路由转发的时候要去掉/demo。然后我们建立一个服务,并引入。这个配置代表负载均衡,
2025-08-13 10:45:53
577
原创 spring-cloud整合nacos详细攻略
在下载并部署了nacos以后,我们可以用它作为spring-cloud的注册中心和配置中心。其中config.import下面就是要引入的配置文件列表,以nacos:开头。命名空间id和命名空间名称不是同一个东西,本人被这个坑点卡了半天。接下来我们要去nacos中复制命名空间id。说明服务成功被nacos识别并注册。有如上服务说明成功读取了配置。
2025-08-12 17:07:05
184
原创 nacos 3.x配置攻略
首先检查环境里是否有jdk17+并且在官网下载压缩包解压后打开并进入bin目录即可看到成功界面我们进入localhost:8080这个页面,就能进行配置管理了,注意首次进入会让你输入密码。点击左侧命名空间,我们新建一个命名空间接下来再在命名空间里写入相应配置现在我们就能使用别的应用来进行整合,我的下一篇博客将介绍如何用springcloud进行配置发现。
2025-08-12 16:25:18
532
原创 【Java后端】Quartz任务调度核心机制详解:从基础编排到动态控制
建议将本文代码示例与您实际的业务场景结合,通过合理的线程池配置和持久化方案,可轻松应对日均百万级任务调度的需求。对于更复杂的节假日调度场景,可参考Quartz Calendar的官方文档实现。// 创建任务数据容器。
2025-08-11 10:02:24
542
原创 Spring Boot异常处理翻车?3步搞定全局异常捕获,让你的API稳如老狗!
为了统一接口返回格式,并方便携带错误码和错误信息,这里定义一个泛型响应类@Data// 成功响应// 错误响应Controller 层直接返回统一了接口格式,方便前后端对接明确了错误码避免返回异常信息时出现类型转换错误统一返回格式,便于前端处理减少重复的 try-catch 代码方便日志记录与问题排查相比使用,AOP 的方式更灵活,可以结合切点选择性地对某些包或类生效,适合需要细粒度控制的场景。
2025-08-08 15:01:27
267
1
原创 别再被卡住了!Coze Studio 开源版本地部署 5 分钟搞定(含完整踩坑指南 适配windows系统)
就代表你的 Coze Studio 成功跑起来了!这是 Windows 用户常见问题!,多个项目的网络、容器可能会冲突。服务启动后,以下几个容器退出(觉得写的不错的话点个关注不迷路。用 VS Code 打开。如果你有多个项目都叫。
2025-07-28 01:23:10
1231
原创 【java】一篇文章带你读懂线程池
是Java并发编程API中提供的高级接口,用于管理线程的执行过程。它扩展了Executor接口,增加了更多实用功能,如关闭线程池、获取任务结果等。// 创建线程池实例5, // 核心线程数10, // 最大线程数60L, // 空闲线程存活时间(秒)new ArrayBlockingQueue<>(100), // 任务队列容量new ThreadPoolExecutor.CallerRunsPolicy() // 拒绝策略// 提交任务i < 10;
2025-07-26 12:02:23
943
1
原创 spring-boot项目集成spring-ai
Component//对话器//MCP工具//RAG@Autowired@Autowired) {.build();//自带对话id// 动态启用 RAG// 启用 MCP 工具调用try {.call().content();// 工具调用异常,打印日志或返回默认内容System.err.println("工具调用异常: " + e.getMessage());// 返回模型基础回答或自定义错误提示// 这里可以调用不带工具的对话或者返回固定内容。
2025-07-11 16:13:54
259
1
原创 ruoyi-plus系列代码生成功能详解
摘要:本文介绍了基于若依系统快速开发AI对话模块的过程。通过复制system模块创建ruoyi-ai新模块,修改pom.xml、配置文件和Nacos注册信息,设计包含必备字段的AI对话相关数据表,使用代码生成功能自动生成前后端代码,最终成功部署测试。该方法显著提升了开发效率,为后续功能扩展奠定了基础。整个流程涵盖模块创建、配置修改、数据表设计、代码生成等关键环节,体现了若依系统代码生成功能的强大优势。
2025-07-05 19:13:27
565
1
原创 AI辅助编写前端VUE应用流程
首先页面的设计是关键,进行合理的页面拆分是进行ai任务分解的关键,比如一个题目后台管理功能,它可以分为一个主要的展示页面和几个对话框,子页面包括了题目编辑,添加等。首先把系统拆分成一个个页面,让AI先把每个页面都建立一个view,如果每个页面的代码量过大,再把view进行组件拆分。如果写的页面有问题,则指出并让ai修改,需要注意是如果有的问题AI始终无法解决,如CSS排版等问题,这些可能就需要手动f12解决了。在AI的上下文中添加具体要完善的页面,以及这个页面要用的API,组件等信息,并提出功能要求。
2025-06-27 10:28:45
438
3
原创 【设计模式】在线购物系统后台设计实战(期末考题)
摘要:电商支付系统重构采用了工厂方法模式,实现支付功能的开闭原则。通过定义Payment接口和不同支付实现类(现金、信用卡等),利用PayFactory自动注册所有支付方式。新增支付方式只需添加实现类,无需修改核心代码,支持动态切换支付方式。该设计降低了耦合度,提高了扩展性,支付处理只需传入typeId即可调用对应支付逻辑,便于后续接入支付宝、微信等更多支付渠道。
2025-06-12 15:32:02
283
原创 【算法笔记】树套树
在面对二维区间统计问题查询某个一维区间中,大于某个值的数的个数对一个序列同时支持区间查询 + 单点修改我们常用的一维数据结构(如线段树、树状数组)往往显得力不从心。树套树。“树套树”顾名思义,就是一棵树中的每个节点再套一棵树。外层:线段树/树状数组,按照下标维护区间内层:平衡树(如 STLmultiset或手写)维护该区间内的值集合单点修改某个值查询区间中小于/大于某值的数的个数查询区间第kkk小数值(需平衡树)
2025-06-08 18:14:43
1124
1
原创 【算法笔记】大厂笔试/蓝桥杯/ICPC必学 莫队算法
在处理一类典型的离线区间查询问题时,我们常常面临这样一个选择:是用树状数组?线段树?还是其他暴力手段?这些方法在频繁修改或大规模数据下常常显得力不从心。莫队算法。莫队算法是一种离线处理区间查询给定一个静态数组(不修改)多次查询某个区间的某种统计信息查询结果可以通过左右端点的微调(+1/-1)高效更新。
2025-06-08 17:22:45
919
原创 【软件工程】可行性研究
定义:描绘物理系统的传统工具,用图形符号以黑盒子形式表示系统部件(程序、文件、数据库、人工过程等)。作用在可行性研究中描述现有系统或建议系统的物理模型。表达部件的信息流程(非控制过程)。定义:从信息传递和加工角度,图形化描述数据流的移动变换过程。特征抽象性:去除物理细节,仅保留数据流动和加工。概括性:整合多业务处理过程形成总体视图。定义:对DFD中元素的详细说明,补充DFD的语义描述。内容数据流数据元素(分量)数据存储处理逻辑外部实体。
2025-06-03 19:07:53
662
4
原创 paoxiaomo的XCPC算法竞赛训练经验
楼主作为一个普通二本的ICPC选手,在0基础的情况下凭借自学,获得过南昌邀请赛金牌,杭州区域赛银牌,一路上经历过不少的跌宕起伏,如今将曾经摸索出来的学习路线分享给大家。
2025-06-02 19:33:13
766
原创 【Java】 volatile 和 synchronized 的比较及使用场景
volatile是 Java 中的一个轻量级同步机制,它用来确保变量的可见性。当一个线程修改了volatile变量的值,其他线程能够立即看到修改后的值。它通过内存屏障来禁止编译器和 CPU 对volatile变量的重排序,确保每次读取都是从主内存中获取最新的值。是 Java 中的同步机制,它可以保证原子性和可见性。使用可以确保在同一时刻只有一个线程可以执行某个方法或代码块,其他线程必须等待锁的释放。确保了对共享资源的访问是安全的。volatile和是 Java 中两种常用的并发控制机制。volatile。
2025-05-14 20:58:13
600
5
原创 【Java基础】HashTable 和 ConcurrentHashMap 的区别与使用
在 Java 编程中,HashTable和都是用于存储键值对的数据结构。它们在某些情况下功能类似,但在设计和性能方面存在显著的差异。本文将详细介绍它们的区别以及如何选择使用它们。
2025-05-14 20:08:42
884
1
原创 使用CAS操作实现乐观锁的完整指南
无锁:避免线程阻塞和上下文切换高性能:适合高并发场景可扩展:可用于构建各种并发数据结构在实际应用中,需要根据具体场景:• 处理ABA问题• 优化自旋策略• 结合版本控制• 必要时退化为悲观锁通过合理使用CAS乐观锁,可以显著提高Java应用的并发性能和吞吐量。
2025-05-13 16:17:32
643
1
原创 【并发编程基石】CAS无锁算法详解:原理、实现与应用场景
是现代并发编程的核心算法之一,它通过处理器指令级的原子操作实现线程安全,无需传统锁机制。if (V == E) { // 比较当前值是否等于预期值V = N // 如果相等则更新。
2025-05-13 15:55:01
661
1
原创 数据库分库分表实战指南:从原理到落地
通过合理的分库分表策略,可以使传统关系型数据库支撑起海量数据场景。关键在于根据业务特征选择合适的分片策略,并建立完善的监控运维体系。• 数据量>1TB:考虑NewSQL数据库(TiDB/CockroachDB)• 超高并发场景:结合内存数据库(Redis/Aerospike)• 数据量<1TB:使用中间件方案。
2025-05-11 18:42:40
1277
2
原创 一文了解B+树的删除原理
宽松的根节点约束自顶向下的删除策略高度自适应的结构调整这种精妙的设计使得B+树在维持高效查询性能(OlogmNOlogmN)的同时,能够优雅地处理极端情况下的结构变化。理解这一机制对数据库存储引擎开发和文件系统优化具有重要意义。
2025-05-11 17:18:56
1070
1
原创 数据库索引详解:原理 · 类型 · 使用 · 优化
索引本质上是一棵数据结构(如 B+ 树、哈希表等),它维护了表中一列或多列列值与对应数据行存储位置的映射关系。类似于书籍的目录,通过目录可以快速定位到目标章节页码;索引则让数据库引擎能更快地定位到目标行,避免全表扫描。索引是提升数据库查询性能的核心策略,但同时也带来额外的写入开销和维护成本。唯有深刻理解索引原理、合理选择索引类型,并通过监控与重构不断优化,才能在性能和资源利用之间取得最佳平衡。
2025-05-10 16:28:58
1518
1
原创 数据库中的 Segment、Extent、Page、Row 详解
层级说明示例大小(InnoDB)Segment表或索引的所有空间总和N/AExtent一组连续的页1MB(64个16KB页)Page数据读写的最小单位16KBRow表中的一条记录变长(数十~数千字节)
2025-05-10 16:00:34
768
原创 【操作系统】线程崩溃机制详解
在分布式系统与多线程编程的世界里,一个看似简单的问题却暗藏玄机:当某条线程突然崩溃,其所属进程会随之消亡吗?这个问题背后隐藏着操作系统与编程语言的精妙设计,本文将从底层原理到工程实践层层剖析。
2025-05-07 13:13:51
313
2
原创 【操作系统】一文了解各种锁(超详细)
在多线程编程和操作系统中,锁(Lock)是保证线程安全、避免竞态条件的关键机制。不同的锁适用于不同的场景,本文将从底层原理到实际应用,详细介绍常见的锁类型及其优缺点。
2025-05-07 12:18:52
1238
原创 【操作系统】深入理解内存管理:从虚拟内存到OOM Killer
在现代计算机系统中,内存管理是操作系统最核心的功能之一。本文将围绕内存管理的几个关键概念展开讨论,包括虚拟内存机制、内存分配原理、OOM Killer的工作机制以及不同系统架构下的内存限制。
2025-05-04 19:07:47
643
5
原创 【操作系统】一文带你深入理解内存分配
brk():适合小内存,速度快但有碎片mmap():适合大内存,灵活但开销大理解这些底层机制,才能写出更高效的代码!
2025-05-04 17:50:07
329
2
原创 Elasticsearch--自带“搜索引擎“的数据库
高度可扩展:自动分片与副本机制,轻松实现从单节点到千节点扩容。丰富查询能力:支持全文检索、精确匹配、布尔组合、多字段、多语言分词、多种聚合。实时性:近实时(NRT)架构,文档写入后秒级可查询。生态完善:Kibana、Beats、Logstash、Elastic APM 等生态工具,覆盖数据采集、监控、可视化全链路。混合场景支持:除了日志与搜索,还可做实时指标分析、向量搜索、SIEM 安全事件管理等。
2025-04-30 21:02:33
1559
2
原创 Kaggle比赛入门攻略(以 Titanic 为例)
阶段内容注册参赛加入比赛并同意规则数据理解train/test 数据结构清晰创建 Notebook无需本地环境,在线运行探索数据找到性别、舱位等关键特征构建模型使用 sklearn 快速上手提交预测自动保存为 CSV 并提交评分持续提升学习课程,改进特征,调参优化如果你成功提交了 Titanic 的预测结果,恭喜你正式迈出了数据科学之路的第一步!
2025-04-30 19:30:42
1801
原创 【操作系统】面试必备!一文了解缓存
在多核处理器系统中,每个核心都有自己的缓存(Cache),用于加速数据访问。• 减少伪共享(False Sharing):通过缓存行对齐(Padding)减少不必要的失效。• 目录协议(Directory-Based):仅通知持有副本的核心,而非广播所有核心。• Modified(M):缓存行已被修改,与主存不一致(脏数据)。• Exclusive(E):缓存行独占,与主存一致(干净数据)。• Shared(S):缓存行被多个核心共享,与主存一致。• 动作:直接修改,无需广播(因为没有其他副本)。
2025-04-29 17:45:08
708
1
原创 【软件工程】面向对象编程(OOP)概念详解
抽象类:包含抽象方法(没有实现的方法)的类,不能被实例化,子类必须实现其抽象方法。接口:纯抽象的“契约”,Java8+ 支持默认方法(default)和静态方法。// 抽象类示例// 抽象方法System.out.println("我是一个图形");// 子类实现@Override// 接口示例// 抽象方法// 实现接口@OverrideSystem.out.println("绘制矩形");Single Responsibility(单一职责)O。
2025-04-28 17:13:35
633
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人