自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(163)
  • 收藏
  • 关注

原创 Maven搭建私服Nexus教程

搭建完成后,团队所有成员配置好 Maven 的 settings.xml,即可共享依赖,大幅提升构建效率。首次登录的初始密码需在服务器上查看:cat /opt/nexus/sonatype-work/nexus3/admin.password。修改 Maven 的配置文件 settings.xml(通常在 ~/.m2/ 或 Maven 安装目录的 conf/ 下)。如果需要持久化数据,可以挂载宿主机目录 -v /data/nexus:/nexus-data。修改密码:登录后会强制要求修改密码,请妥善保管。

2026-03-31 20:50:42 361

原创 VMware新建虚拟机教程

选择 关闭 Windows Defender 防火墙(仅用于测试)修改后保存退出(vi 操作:按 Esc,输入 :wq 回车)打开 控制面板 → Windows Defender 防火墙。找到 文件和打印机共享(回显请求 - ICMPv4-In)右键点击 启用规则(可能有“公用”、“专用”两个,都启用)点击 启用或关闭 Windows Defender 防火墙。方法一:开启防火墙入站规则(推荐)5.选择将虚拟磁盘存储为单个文件。8.选择新CD/DVD(IDE)4.命名和选择安装路径。3.命名设置账号密码。

2026-03-31 20:18:01 63

原创 影刀自动化工作流RPA采集教程

点击安装Google chrome自动化插件。捕获输入框,捕获元素,内容输入,例如输入养生。点击网页自动化-点击打开网页。点击工具-点击自动化插件。点击新建-PC自动化应用。打开网页,输入网站链接。

2026-03-17 20:57:51 150

原创 OpenShift CLI (oc)客户端安装以及常用命令

通过浏览器登录 OpenShift Web 控制台后,可在右上角用户菜单中点击 “Copy Login Command”,获得一个带有令牌的 oc login 命令,直接粘贴执行即可。oc 是 kubectl 的超集,所有 kubectl 命令都可以用 oc 执行(oc get pods 等同于 kubectl get pods)。oc 增加了 OpenShift 特有资源(如 BuildConfig、DeploymentConfig、Route、ImageStream)的支持。

2026-03-13 14:29:01 1130

原创 Kolla Ansible 搭建 OpenStack私有云教程

这个阶段主要是准备好一台符合要求的物理机或虚拟机。硬件要求:内存建议 8GB+,磁盘 40GB+,且必须拥有2块物理网卡。BIOS 设置:务必开启 CPU 硬件虚拟化支持(Intel VT-x 或 AMD-V)。操作系统:推荐 Ubuntu 22.04/24.04 或 Rocky Linux 8/9。网络规划:确定好用于管理网络的网卡名(如 eth0)、用于外部网络的网卡名(如 eth1),并准备一个未被占用的虚拟 IP(VIP),如 192.168.1.250。

2026-03-12 18:49:22 278

原创 搭建ZStack私有云教程

弹出警告提示(如“需要下载文件”或“ISO镜像模式”),保持默认点确定就行。点击“创建云主机”,选择刚才定义的规格(CPU/内存)、镜像和网络。如果你的电脑是2010年后买的,支持UEFI启动,把“分区类型”选为 GPT。下载 Rufus:去官网下载最新版,这是绿色软件,点开就能用,无需安装。添加物理机:输入计算节点的IP和root密码,将真正的“肌肉”加进来。点击“选择”或“SELECT”按钮,找到并选中你下载好的ISO文件。创建区域和集群:逻辑上的“数据中心”和“服务器机柜”。

2026-03-12 17:07:36 241

原创 Flowable流程引擎框架学习指南

Flowable提供了为Flowable Eclipse Designer的Eclipse插件,可以用于图形化建模、测试与部署BPMN2.0流程。github下载flowable6.6.0。(1)插件Eclipse Designer。(2)Flowable ui应用。Flowable企业文档。

2026-03-09 20:08:03 62

原创 Qwen3+RAGflow搭建本地知识库

在RAGflow中进行相关配置、上传文件构建个人知识库、调用本地部署的Embedding解析处理上传的文件、调用本地部署的Qwen3根据文件内容生成回答。在RAGFlow中配置任务的Chat模型和Embedding模型(你需要到这些模型对应的官网去付费申请。Docker镜像是一个封装好的环境,它包含了所有运行RAGFlow所需要的依赖、库和配置。ollama是一个用于本地运行和管理大模型(LLM)的工具。:让虚拟机里的程序能访问本机上运行的Ollama模型;数据集-新建本地文件-上传文件-解析。

2026-03-05 13:27:32 171

原创 Cursor 与 IDEA 互相跳转教程

IDEA安装目录要配置到环境变量PATH,例如E:\software\JetBrains\IntelliJ IDEA 2023.3.8\bin。1.Cursor点击插件图标,下载插件。Cursor直接跳转到这里。IDEA显示跳转文件内容。2.IDEA下载插件。

2025-12-18 18:29:30 1832 1

原创 怎么将Cursor设置成中文?

点击如图所示的 插件图标,输入Chinese,然后下载这个插件。然后重启一下Cursor就可以了。

2025-12-18 17:39:09 339

原创 windows系统下载node的版本管理工具nvm

下载 nvm-setup.exe (安装版)或 nvm-noinstall.zip (便携版)通过控制面板卸载所有 Node.js 版本。◦ 运行 nvm-setup.exe。◦ 按照向导完成安装。

2025-11-18 16:18:16 171

原创 java如何保证分布式事务一致性?

选择哪种方案取决于你的具体业务需求,包括对一致性的要求、系统复杂度容忍度、性能要求等因素。将长事务拆分为多个本地事务,每个事务都有对应的补偿操作。:所有参与者都同意后,协调者通知提交。:协调者询问所有参与者是否可以提交。使用本地消息表保证最终一致性。

2025-11-13 17:35:49 231

原创 Java中事务失效场景与解决方案

在Java中,事务失效是一个常见但令人头疼的问题。

2025-11-13 13:15:24 211

原创 Java线程池的核心参数有哪些?

*• 定义:**当线程池中的线程数量超过 corePoolSize 时,那些多余的空闲线程在等待新任务的最长时间。:线程池中长期存活的线程数量,即使这些线程处于空闲状态,也不会被回收(除非设置了 allowCoreThreadTimeOut )。:当线程池已经关闭,或者线程池和队列都已达到最大容量,无法处理新提交的任务时,执行的策略。:当任务量激增,工作队列也满了之后,线程池会创建新的线程来应急,直到线程总数达到这个值。:作为线程池的基本工作队伍,处理常规的、稳定的任务流。

2025-11-13 12:50:16 916

原创 数据库要进行分表分库是开发一个项目就要设计好了,还是上线后根据需要再分表分库?

清晰的分层(如Controller, Service, Repository)可以让你在未来重构数据访问层时,对业务逻辑的影响降到最低。:项目在启动时,就明确知道会面临海量数据和高并发(例如,大型金融交易系统、核心电信系统、预期百万日活的To C爆款应用)。:在业务代码层就做好解耦,避免编写需要连接“用户表”和“商品表”的复杂SQL。:对于某些核心系统,后期从单库迁移到分库分表的“停机时间”或“技术风险”是业务无法承受的。:大部分项目在整个生命周期内,可能根本达不到需要分库分表的数据量和并发量。

2025-11-08 21:49:10 546

原创 redis查询速度快的原因?

Redis 在后期的版本中,使用多线程来处理一些后台任务(如持久化、异步删除 unlink 命令),但处理客户端请求的核心逻辑仍然是单线程的。因此,Redis 的“快”是一个系统工程的结果,它通过在存储介质、数据结构、线程模型和网络模型等各个层面做出最优选择,最终实现了极致的性能。:传统数据库(如 MySQL)的数据主要存储在磁盘上,查询时需要通过磁盘 I/O 将数据读入内存,这个过程是系统中最慢的环节之一。:你需要告诉图书管理员(CPU)要找的书名,他得去巨大的书库(磁盘)里一本本地找,非常慢。

2025-11-08 21:22:44 559

原创 java中如何保证线程的执行顺序?

在Java中,有多种方式可以保证线程的执行顺序。:使用 CountDownLatch 或 CompletableFuture。每种方法都有其适用场景,根据具体需求选择最合适的方式。:使用 CompletableFuture。:使用 join() 方法。

2025-11-07 14:32:00 251

原创 java中锁都有哪些?

每种锁都有其适用场景,需要根据具体的业务需求和性能要求来选择合适的锁机制。:使用ReentrantLock + Condition。:使用ReadWriteLock或StampedLock。:考虑使用StampedLock的乐观读。:使用synchronized。:CAS操作,Atomic类。:使用Atomic原子类。:通过循环尝试获取锁。

2025-11-07 14:21:42 640

原创 如何优化多表查询sql?

关注 Using filesort(需要额外排序)和 Using temporary(使用了临时表),这些都是性能杀手。:使用Redis/Memcached等缓存连接查询的最终结果,特别是那些不常变化的数据。:如果索引包含了查询所需要的所有字段,数据库就无需“回表”查询数据行,速度极快。:为驱动表在内存中建立一个哈希表,然后遍历被驱动表,用连接键去哈希表中查找。eq_ref:理想的多表连接类型,通常使用主键或唯一索引进行关联。驱动表(通常是数据量小的表,或先访问的表)的连接键索引至关重要。

2025-11-06 14:50:30 1016

原创 设计查询用户接口,如何来保证接口的安全性、健壮性和易用性

例如,普通用户只能查询自己的信息。:内部系统可能返回手机号、邮箱,但对前端页面,则应返回脱敏后的数据(如 138****1234, us**@example.com)。如果该接口依赖其他服务(如通过用户ID查询部门信息),当依赖服务不可用时,应有降级策略(如只返回用户基础信息,部门信息置为空),避免整个接口雪崩。记录详细的访问日志,包括:谁(哪个用户/API Key)、在什么时间、查询了哪个用户的信息。对于查询频繁但变更不频繁的用户信息,可以考虑引入缓存(如Redis),以减轻数据库压力,提高响应速度。

2025-11-06 13:59:47 999

原创 Spring Boot + Spring Security ACL实现对特定领域对象的细粒度权限控制

添加权限: POST /documents/{id}/permissions?通过这种方式,您可以实现对每个对象的精确权限控制,而不仅仅是基于角色的访问控制。删除文档: DELETE /documents/{id}用户可以被授予对特定文档的读取、写入、创建或删除权限。用户: user/password (有读取权限)获取文档: GET /documents/{id}更新文档: PUT /documents/{id}权限可以针对每个用户和每个文档进行单独设置。创建文档: POST /documents。

2025-11-05 17:15:48 712

原创 如何确保在高并发请求下,库存扣减的绝对准确(不超卖)、高性能和高可用?

开关打开时,请求直接绕过 Redis 和 MQ,走数据库扣减流程(通过数据库事务和行锁保证一致性,性能会下降,但保证了可用性)。返回 1:扣减成功。:在任何时刻,针对同一商品的库存扣减操作,必须保证是串行执行的,这是防止超卖的根本。因为 Lua 脚本在 Redis 中是原子执行的,在执行过程中不会被其他命令插入,完美解决了高并发下的竞态条件问题。:任何一个组件(如缓存、数据库、锁服务)都可能故障,系统需要具备隔离和降级能力,保证核心流程依然可用。:官方集群方案,提供数据分片和高可用,是大型系统的首选。

2025-11-04 15:14:23 905

原创 java高并发下缓存击穿,缓存穿透、缓存雪崩解决方案

在熔断期间,对于非核心业务的缓存请求,直接返回预定义的默认值(降级策略),而不是让请求去冲击已经濒临崩溃的数据库。方案:当查询数据库返回为空(即数据不存在)时,我们仍然将这个空结果(比如 null 或一个特殊标记)进行缓存,并设置一个较短的过期时间(例如 1-5分钟)。**造成的影响:**所有请求都无法从缓存中获取数据,全部涌向数据库,导致数据库瞬时压力过大而崩溃。◦ 方案:在缓存之前,加一个布隆过滤器。:即使个别缓存节点宕机,整个缓存服务仍然可用,从而防止因缓存服务整体宕机而引发的雪崩。

2025-11-04 14:38:12 781

原创 如何使用vite快速搭建一个vue3的项目?

选择vue+javascript。

2025-11-03 19:38:10 143

原创 jwt怎么实现token正在访问自动续期的功能

服务端实现:客户端实现:示例代码(Node.js + Express + jsonwebtoken):登录接口生成token和refresh token中间件检查token并自动续期使用refresh token刷新access token的接口客户端示例(使用axios):注意事项:JWT Token 自动续期实现方案思路分析JWT Token 自动续期通常通过以下方式实现:1.短期访问Token + 长期刷新Token:访问Token有效期较短(如15-30分钟),刷新Token有效期较长(

2025-10-29 17:55:58 596

原创 Java如何快速查询导出成百上千万大数据量的excel表数据?

EasyExcel特别适合处理成百上千万数据的大规模导出,相比传统的POI,它在内存占用和性能方面有显著优势。:Excel需要顺序写入,多线程写入复杂且容易出错。:如果数据库是主要瓶颈,多线程会加重数据库压力。:多线程可能竞争I/O资源,反而降低性能。:百万数据导出内存稳定在几十MB。• 避免复杂的JOIN操作。• 使用覆盖索引减少回表。:支持自定义样式、监听器等。:几行代码完成复杂导出。• 添加合适的索引。

2025-10-28 16:39:22 573

原创 MySQL创建存储过程教程

在MySQL中创建存储过程可以使用 CREATE PROCEDURE 语句。以下是详细的步骤和示例: 基本语法 sql 复制 下载 DELIMITER //简单示例 1. 创建无参数的存储过程。查看和管理存储过程 查看所有存储过程。复杂示例 - 包含条件判断和循环。调用输入输出参数存储过程。查看特定存储过程的定义。调用输入参数存储过程。调用输出参数存储过程。

2025-10-28 15:52:49 430

原创 怎么防止短信系统被恶意攻击调用?

在签名中加入时间戳(Timestamp)和随机数(Nonce),服务端校验请求的时效性(如5分钟内有效)并记录已使用的随机数,防止同一请求被重复发送。:限制同一手机号在单位时间(如1分钟,1小时,24小时)内接收验证码的次数。:当检测到用户账户在陌生设备或地点登录并触发短信验证时,在短信内容中加入提醒文字,如“如非本人操作,请忽略本短信”。:对行为可疑(如频率略高)的号码/IP,触发更严格的验证(如语音验证码或人工审核)。:在服务商的管理后台,根据自身业务情况,配置相应的频率限制和告警策略。

2025-10-27 20:16:59 1493

原创 系统接口对接如何设计预防处理系统异常?

对于实时性要求不高的操作(如发送短信、更新统计信息),可以将请求放入消息队列(如RabbitMQ, Kafka),由消费者异步处理。(2) 例如,调用 支付接口 成功后,调用 发货接口 失败,此时必须调用 支付退款接口 进行补偿,以保证数据一致性。:对于非幂等的 POST 、 PATCH 等操作,重试要非常小心,或者依赖服务端的幂等性设计。:发生线上故障后,必须进行复盘,分析根本原因,并改进防御和处理措施,完善应急预案,形成闭环。:进行基础校验(非空、格式等),快速失败,减轻服务端压力。

2025-10-27 19:44:22 1026

原创 Redisson实现分布式锁

每个锁实例对应一个唯一的 Redis key(如 “my_lock”),同时 Redisson 客户端会为该次加锁请求生成一个唯一的 UUID(存储在 id 字段中),Redisson 实现分布式锁不仅简单易用,而且功能强大、安全可靠,它解决了在使用原生 Redis 命令实现分布式锁时可能遇到的许多复杂问题(如锁续期、不可重入等)。:如果设置了过期时间,但业务逻辑的执行时间超过了这个时间,锁会提前自动释放,导致其他线程拿到锁,出现数据混乱。(2) 看门狗会给锁设置一个默认的过期时间(默认 30 秒)。

2025-09-08 18:34:14 874

原创 Seata有几种模式

与Seata支持的其他事务模式不同,XA协议要求事务资源本身提供对规范和协议的支持,所以事务资源(如数据库)可以保障视角对数据的访问有效隔离,满足全局数据一致性。区别于在AT模式直接使用数据源代理来屏蔽分布式事务细节,业务方需要自行定义TCC资源的**“准备”,“提交"和"回滚”**。TCC模式是Seata支持的一种由业务方细粒度的侵入式分布式事务解决方案,是继AT模式后第二种支持的事务模式。(1)业务无侵入:和AT一样,XA模式将是业务无侵入,不给应用设计和开发带来额外负担。,侵入式的代码,需要我们。

2025-09-08 16:38:22 272

原创 DataGrip历史版本的下载路径

【代码】DataGrip历史版本的下载路径。

2025-09-06 17:29:43 267

原创 创建线程有哪几种方式

FutureTask能够接收Callable类型的参数我,用来处理有返回结果的情况。Callable接口是一个有返回结果的接口,里面有个call()方法。(1)方法1是吧线程和任务合并在了一起,方法2是把线程和任务分来了。(3)用Runnable让任务类脱离了Thread继承体系,更灵活。*Runnable可运行的任务(线程要执行的代码)Runnable接口,重写Thread的run方法。方法二:使用Runnable配合Thread。把【线程】和【任务】(要执行的代码)分开。方法一,直接使用Thread。

2025-09-05 14:27:02 181

原创 可爱萌娃瑶一瑶小肉包表情包动图

大量好看可爱的表情包等着你来拿,抓紧行动吧!可爱萌娃瑶一瑶小肉包表情包动图。想要的亲,请在微信搜索小程序。

2025-01-02 17:14:45 368

原创 印尼小胖子表情包大全

印尼小胖子tatan表情包大全。想要更多表情包,访问。

2024-01-02 13:33:05 798

原创 Java面试题大全

java面试题宝典

2024-01-02 13:07:34 512

原创 sqlserver创建表,设置主键自增

【代码】sqlserver创建表,设置主键自增。

2023-08-09 16:15:19 1085

原创 Unable to parse template “Class“ Error message: Selected class file name

在右边找到Text ,然后在下面找到你创建的类名,把它删掉就ok了。打开SETTING(CTRL+ALT+S)选择File Types。

2023-07-27 13:56:54 479

原创 Centos7.6安装mysql8.0

centos7.6安装mysql8.0

2022-11-25 16:41:54 853

原创 若依shiro添加对外开放的接口

若依对外开放接口

2022-11-24 10:29:30 5078

Java飞行棋源码【飞行棋2023】

Java飞行棋源码【飞行棋2023】

2023-05-29

空空如也

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

TA关注的人

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