- 博客(191)
- 收藏
- 关注
原创 PyTorch 入门:小白也能训练自己的 NLP 模型
本文详细介绍了RNN(循环神经网络)的原理及其在PyTorch中的实现方法。RNN是一种专门处理序列数据的神经网络,通过隐状态记忆上下文信息,适用于文本、语音等时序数据。文章首先讲解了RNN的基本结构和时间展开视图,然后详细阐述了PyTorch构建神经网络的四个关键要素:网络层、损失函数、优化器和训练流程。
2025-11-17 11:09:11
799
原创 Langchain4j — 0基础使用Java代码构建自己的聊天机器人
🌟 本篇内容主要从0开始一步一步搭建自己的机器人! 🤖✨📚 文档来源:【小智医疗:Java大模型应用项目全流程实战,企业级Java项目LangChain4J项目,LangChain+向量数据库+RAG】🔥
2025-05-24 16:29:44
2030
原创 Redis封装类
本文介绍了一个基于Spring Cloud的高并发售票系统,通过Redis缓存优化实现高性能。系统采用多级缓存、数据预热、精确限流等策略降低下单延迟。RedisCache接口封装了StringRedisTemplate,支持JSON格式存储和多种数据结构操作,并通过RedisKeyBuild统一管理key值。实现类RedisCacheImpl提供了完整的Redis操作API,包括字符串、哈希、列表、集合和有序集合等。CacheUtil工具类辅助处理类型转换和参数校验。该系统适用于高并发场景,能有效解决缓存穿
2026-01-14 14:46:07
898
原创 如何使用 RDelayedQueue 实现高性能延迟队列
本文介绍了使用Redisson实现延迟队列的优势及具体实现方案。相比RocketMQ,Redisson方案性能更高且减少中间件依赖。核心实现基于Redisson的RDelayedQueue接口,通过以下步骤构建分布式延迟队列:1) 创建RBlockingQueue和RDelayedQueue;2) 使用offer方法添加延迟元素;3) 从原始队列消费元素。文章详细展示了架构级实现,包括消息分区处理、生产者/消费者线程池配置、自动装配流程等关键设计。该方案支持消息持久化,在应用重启后仍能保持状态,适合订单超时
2026-01-14 14:12:17
717
原创 四种服务初始化操作
本文介绍四种初始化方式1.CommandLineRunner2.InitializingBean3.PostConstruct4.ApplicationListener
2026-01-09 14:33:24
705
原创 如何使用Redission实现分布式锁及幂等性?【AOP+工具类的两种解决方案】
本文介绍了一种基于AOP实现分布式锁的方案。通过自定义@ServiceLock注解和Redisson客户端,结合Spring AOP切面编程,实现了四种锁类型(可重入锁、公平锁、读锁、写锁)的分布式控制。方案包含锁键生成、锁管理缓存、切面优先级处理(确保锁在事务外层)等核心功能,并提供了注解式和编程式两种使用方式。通过锁工厂模式和策略模式,实现了锁类型的灵活扩展和加锁失败的自定义处理。该方案能有效解决分布式环境下的并发控制问题,适用于用户注册、订单处理等高并发场景。
2026-01-08 16:28:41
760
原创 Elasticsearch
是一个基于的,是面向文档(Document)存储的,可以是数据库中的一条商品数据,一个订单信息等,而文档数据会被序列化为json格式后存储在ELasticsearch中:而json文档中往往包含很多的字段(Field),类似于数据库中的列。支持(搜索文章、日志、商品等)支持(JSON 文档形式)支持(类似数据库的分组统计):可以横向扩展,适合大规模数据。Logstash / Beats(采集)、Kibana(可视化)、Elastic APM(性能监控)、Fleet/Agent(统一管理)。
2026-01-08 13:41:57
1432
原创 如何去使用git进行协同开发?
而想将代码从远程仓库中获取代码,可以使用 git pull命令将远程代码拉取到本地。而 add 的功能不是保存,而是挑选哪些文件提交、哪些文件不提交,像一个“筛选器”,我们可以使用 git add 命令将更改的文件添加到 Git 的暂存区。Git 是一种分布式版本控制系统,用于管理软件项目的源代码,使用 Git 可以追踪代码的历史修改记录,方便团队协作、代码共享和代码重构。如果需要撤销某个提交,可以使用 git revert 命令来创建一个新的提交,该提交将会抵消先前的提交效果。
2026-01-08 13:38:14
924
原创 分布式ID生成器
摘要:分布式ID生成器在分布式系统中至关重要,Snowflake算法是主流解决方案之一。该算法通过64位ID(时间戳+机器ID+序列号)实现高并发唯一ID生成,支持每秒百万级生成。百度UidGenerator基于Snowflake改进,通过RingBuffer缓存和未来时间借用提升性能至600万QPS。文章详细解析了基于Redis+Lua的Snowflake实现方案,包括自动分配workId/dataCenterId的机制,并提供了完整Java代码实现,解决了时钟回拨和分库分表场景下的ID生成问题。
2026-01-05 14:09:13
1033
原创 k8s部署微服务项目
Kubernetes(简称 K8s)是一个容器编排平台,它负责把你用 Docker 打包的应用(容器)放到多台机器上运行、自动重启、伸缩、负载均衡和发现服务。换句话说:把“单机 docker run”提升成“分布式可用、可扩缩、可管理”的平台。Pod:K8s 最小调度单位,通常一个 Pod 里跑一个容器(或紧密耦合的多个容器)。Deployment:管理一组副本 Pod 的控制器(负责滚动更新、回滚)。:有状态服务(比如数据库、有持久名)的部署方式。Service。
2026-01-02 19:17:17
1222
原创 使用ShardingSphere进行分库分表
基因法 = 从分片键(二进制)中抽取一部分“基因位”,再用这部分去决定落库/落表。对于191 % 32 = 3110111111100000 也就是2的5次方11111可以发现31的二进制对应191后5位数。比如说 159,二进制是 10011111 ,对 32 取模,结果还是31。也就是说如果随便拿一个数转成二进制,然后把二进制的后5位替换成这个11111,然后将这个替换后的值对32进行取模,那么得到的余数也是31,这个5位长度就是靠32的二进制的长度也就是求log2n对数的值。
2026-01-02 19:11:32
1184
原创 JUC并发编程技术篇
本文系统介绍了Java并发编程的核心组件,包括线程池、同步工具、原子类及高级并发框架。主要内容涵盖: 并发基础:阐述Java内存模型、volatile关键字原理及synchronized实现机制,。 并发工具: 同步器:CountDownLatch(一次性栅栏)、CyclicBarrier(可重用屏障)、Semaphore:Atomic原子类及其ABA问题解决方案 线程封闭:ThreadLocal实现,线程池的使用与底层代码,Fork/Join框架CompletableFuture等
2025-10-14 20:44:39
967
原创 手搓Spring
本文详细介绍了如何手动实现一个简化版的Spring框架核心功能,主要包括以下内容: Spring核心机制:IoC(控制反转)和AOP(面向切面编程)的实现原理,通过自定义注解@Component、@Autowired等完成依赖注入。
2025-09-09 19:39:26
857
2
原创 JMeter —— 压力测试
本文介绍了性能测试的基本概念和JMeter工具的使用方法。主要内容包括:1)性能测试常用指标(吞吐量、响应时间、资源利用率);2)压力测试的目的和关键条件;3)JMeter的简介、下载安装步骤;4)JMeter的基本使用方法,包括创建线程组、添加HTTP请求、配置监听器等操作流程。文章为性能测试人员提供了从理论到实践的完整指导,帮助用户掌握使用JMeter进行Web应用性能测试的基本技能。
2025-08-27 11:26:20
1251
1
原创 如何提供对外访问的IP(内网穿透工具)
内网穿透技术(如Ngrok)解决了无公网IP、NAT限制等问题,让外部网络能访问局域网服务。Sunny-Ngrok提供域名注册服务,通过建立隧道将本地地址(如127.0.0.1:80)映射到公网域名,实现外部访问内部服务。这种技术特别适用于开发测试或临时公网访问需求。
2025-08-13 11:08:10
308
原创 MongoDB
摘要:本文介绍了MongoDB的基本概念、核心特点及适用场景,并详细讲解了MongoDB的安装方法和SpringBoot集成方式。MongoDB是一款分布式文档数据库,采用BSON格式存储数据,具有无固定模式、高性能和水平扩展等特点,适用于网站数据、高伸缩性场景等。文章提供了两种安装方式:官网下载和Docker镜像安装。在SpringBoot集成部分,重点讲解了MongoRepository和MongoTemplate两种操作方式,并通过测试代码展示了CRUD、条件查询、分页查询等常见操作。MongoRep
2025-08-12 12:10:11
985
原创 高并发场景下抢单业务解决方案实现(乐观锁 + 分布式锁)
本文总结了抢单场景下的并发优化方案:1. 数据库层面通过设置Serializable隔离级别或乐观锁(版本号控制)实现;2. 本地锁(synchronized/Lock)在集群环境失效,需使用Redis分布式锁;3. Redis分布式锁通过SETNX+过期时间实现,需配合UUID防误删和Lua脚本保证原子性;4. 推荐使用Redisson框架,它内置看门狗机制实现锁自动续期,提供更完善的分布式锁功能。最后通过司机抢单案例演示了Redisson分布式锁的实际应用,包括锁获取、业务处理和解锁的完整流程。
2025-08-11 13:21:22
1236
原创 腾讯位置服务 —— 预估订单路线金额(使用Drools规则引擎处理)
本文介绍了基于Drools规则引擎的代驾费用计算系统实现。系统采用规则引擎将易变的计费规则(里程费、等候费、远途费)与业务代码解耦,支持动态调整计费策略。详细讲解了Drools规则引擎的配置、语法结构(包括规则属性、模式匹配、内置方法等),并通过封装输入输出对象实现了费用预估微服务接口。最后提出优化方案,将规则存储到数据库实现动态更新。系统解决了计费规则频繁变更带来的维护难题,提高了业务灵活性。
2025-08-07 19:38:31
1396
原创 微信后端登录认证
本文介绍了微信小程序代驾项目中乘客端登录功能的实现方案。系统采用微信授权登录方式,通过wx.login获取临时凭证code,调用微信接口换取openid作为用户唯一标识。首次登录时自动注册用户信息,并生成token存入Redis。设计了包含登录校验AOP拦截、用户信息获取等功能的完整流程,使用ThreadLocal存储当前用户信息,通过自定义注解和切面实现登录状态校验。系统实现了无感知注册、自动登录和用户信息管理功能,为代驾服务提供基础用户认证支持。
2025-08-05 14:13:35
1086
原创 Linux 使用 screen 窗口会话稳定挂载jar包到后台运行
当前启动后, 会占用前台控制窗口, 导致无法输入其他命令,因为 java -jar 运行jar包, 本身就是直接在前台运行,所以我们可以通过 Linux 提供的 screen 窗口会话的方式, 完成稳定挂载到后台运行。③ 彻底结束会话窗口:ctrl + d。其他screen操作【扩展】① 查看screen窗口。
2025-07-22 20:14:48
270
原创 若依前后端部署
本文详细介绍了使用Docker部署前后端分离项目的完整流程。前端部分通过Nginx容器实现,配置了静态资源服务、反向代理和路由支持;后端部分包含MySQL、Redis和Spring Boot应用的容器化部署。关键步骤包括:创建Docker网络、配置Nginx、挂载数据卷、设置容器间通信等。部署要点涵盖:前端资源部署、Nginx配置、数据库初始化、应用容器构建及日志管理。所有服务通过Docker网络ruoyi实现互联,确保前后端通信正常。文中提供了详细的命令和配置文件示例,包括端口映射、数据持久化、时区设置等
2025-07-21 10:55:59
800
原创 2025年最新版 Spring Security + OAuth2 协议的教学博客 — 一篇文章带你从入门到了解
🔐 Spring Security 6.x + OAuth2 安全框架实战指南 🚀本博客将带您全面掌握 Spring Security 6.x 安全框架与 OAuth2协议 的深度整合应用!💪
2025-07-17 13:25:36
2376
原创 No spring.config.import property has been defined解决方法
No spring.config.import property has been defined解决
2025-07-15 12:05:00
360
原创 使用Freemarker实现页面静态化 + Openfeign远程调用文件传输 的完整解决方案
本文介绍了页面静态化技术及其在课程详情页面的应用。主要内容包括:1)页面静态化概念,即提前生成HTML页面以提高并发性能,适用于数据变化不频繁的场景;2)模板引擎技术原理,重点介绍了Freemarker模板引擎的使用方法;3)具体实现步骤,包括Freemarker配置、模板文件编写、数据模型绑定和静态页面生成。通过将课程详情信息与Freemarker模板结合,实现课程预览功能,并最终生成静态HTML文件。该方法有效提升了系统性能,适用于课程发布后修改频率较低的业务场景。
2025-07-12 20:28:06
1025
原创 XXL-JOB分布式任务调度 (从0-1项目实战)
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
2025-06-11 10:16:56
1836
原创 使用MinIO搭建自己的分布式文件存储
MinIO是一个高性能、分布式对象存储系统,专为大规模数据基础设施而设计,它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。它一大特点就是轻量,使用简单,功能强大,支持各种平台,单个文件最大5TB,兼容 Amazon S3接口,提供了 Java、Python、GO等多版本SDK支持。官网:https://min.io。
2025-06-06 11:12:04
5400
原创 GlobalExceptionHandler 自定义异常类 + 处理validation的异常
在 Spring Boot 项目中,自定义异常通常用于处理特定的业务逻辑错误,并结合全局异常处理器(@ControllerAdvice)统一返回结构化的错误信息。
2025-05-29 15:04:01
519
原创 树型表查询方法 —— SQL递归
本文介绍如何实现课程分类数据的树形结构查询接口。课程分类表采用树型结构,通过parentid字段记录父子关系。文章提出两种查询方案:1)使用自连接查询固定层级数据,适用于已知层级深度的情况;2)采用MySQL递归查询(WITH RECURSIVE语法)处理不确定层级的树形数据。
2025-05-29 11:46:52
1456
1
原创 在 springboot3.x 使用 knife4j 以及常见报错汇总
本文介绍了SpringBoot3.x集成Swagger3和Knife4j的完整解决方案。
2025-05-27 11:28:22
2839
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅