- 博客(55)
- 收藏
- 关注
原创 Linux 磁盘扩容实战案例:从问题发现到完美解决
某企业服务器根目录空间不足,运维人员发现 /dev/vda1 分区已满,尽管物理磁盘已扩展至 200G,但分区和文件系统未同步扩展。通过 fdisk 扩展分区后,lsblk 显示分区已扩展,但 df -h 仍显示旧容量,表明文件系统未同步。解决方案包括备份数据、检查文件系统完整性,并使用 resize2fs 扩展文件系统。最终验证扩容成功,df -h 和 lsblk 输出一致,问题解决。
2025-05-20 21:55:19
1117
原创 SpringSecurity + OAuth2 限制一个用户(同端互斥)登录
【代码】SpringSecurity + OAuth2 限制一个用户(同端互斥)登录。
2025-03-26 11:17:59
344
原创 分享vue好用的pdf 工具实测
打印插件,它允许你轻松地将页面或特定元素转换为可打印格式,并提供了额外的功能如预览和生成 PDF。带大纲,带分页,带缩放,带全屏,带打印,带下载,带旋转。在项目中创建一个viewer.properties的文件。创建文件 pdfConfig.ts。是一个用于 Vue.js 的。
2025-03-14 19:21:58
583
原创 接入 deepseek 实现AI智能问诊
必须包含user角色,用于传递用户输入。system角色可选,用于设置对话背景。多轮对话需要将历史记录添加到messages中。
2025-02-06 15:00:13
5600
6
原创 vue集成高德地图API实现坐标拾取功能
高德开放平台官网控制台提供了高德开发者Key管理,Key可视化分析等功能。简介 | @vuemap/vue-amap。组件 | vue-amap。我的应用 | 高德控制台。
2025-01-16 17:30:06
734
原创 OpenAI Whisper 语音识别 模型部署及接口封装
这行命令的意思是在系统重启时运行 nohup 命令,并将标准输出和标准错误重定向到 /opt/Whisper/speech.log 文件。3、保存并退出: 保存文件并退出编辑器。对于 vi 编辑器,可以按 Esc 键,然后输入 :wq 并按回车键。OpenAI Whisper链接。这样模型文件就会被下载到。
2024-11-27 17:39:37
1316
原创 分布式锁(防止同时操作同一条数据)实现分析
使用 examReportService.lambdaQuery 方法查询符合条件的 ExamReport 记录,并排除 789 和 101 这些已经被锁定的 ID。调用 deleteLocked("123", "user1") 会删除 examReportId_123_user1 键,释放锁。键的格式为 examReportId_{id}_{username},值为 "1",过期时间为 1 小时。通过查询 Redis 中的键来判断是否存在与当前用户相关的锁,并且该锁的值为 "1"。
2024-11-06 17:26:50
840
原创 生成订单幂等性(防止订单重复提交)
当用户进入订单提交界面的时候,调用后端获取请求唯一 ID,同时后端将请求唯一ID存储到redis中再返回给前端,前端将唯一 ID 值埋点在页面里面。使用redis的分布式锁服务,对请求 ID 在限定的时间内进行加锁,如果加锁成功,继续后续流程;最后一步,如果加锁成功后,需要将锁手动释放掉,以免再次请求时,提示同样的信息;如果用过,就提示重复提交。防止用户提交,最常规的做法,就是客户端点击下单之后,在收到服务端响应之前,按钮置灰。最后一步,如果加锁成功后,需要将锁手动释放掉,以免再次请求时,提示同样的信息。
2024-08-06 10:49:02
1240
原创 使用pdf.js在Vue、React中预览Pdf文件,支持PC端、移动端
文章浏览阅读521次。之前一直使用的pdf.js+canvas的形式预览PDF,但是这有一个很大的弊端,就是canvas生成的图片太糊了,而且本质上这渲染的根本不是pdf,而是一张图片,很多pdf中带有的功能这里都不能实现。我在源码中加了一个被我隐藏的按钮,并为其添加点击事件,在缩放完成后,调用点击事件,完成pdf的更新。文章浏览阅读7.6k次。【Vue】vue2使用pdfjs预览pdf文件,在线预览方式一,pdfjs文件包打开新窗口预览pdf文件_vue2 pdfjs-CSDN博客。
2024-07-30 11:27:41
1316
原创 运维总复习
熟悉操作系统基本指令、文件系统和权限管理掌握shell脚本的编写,能够自动化常见的系统管理任务。如:top、vmstat、iostat等系统监控工具内核参数调整、文件系统优化安装和配置、内存分配、线程数等熟悉sql语句的基础语法和查询优化技巧掌握mysql数据库的备份和恢复方法、物理备份、逻辑备份。
2024-03-05 11:57:41
221
1
原创 Java总复习
数据类型、变量、运算符、控制结构(if、switch、for、while、do-while等)封装、集成、多态、抽象。具体实现:接口、类try-catch-finally、自定义异常(thow/throws)。list、set、map等集合和其实现类。Calss类、Runtime类、method、Field、Constructor等File类、字符流、字节流、输入流、输出流、序列化等Socket、URL内存结构(堆、栈、方法区等)、垃圾回收、性能调优。
2024-03-05 10:50:37
993
原创 微服务相关的核心概念及技术
常用的RPC框架有:Dubbo,Google的GRPC,Apache的Thrift,微博的Motan,京东的EasyRPC等。我们通过RPC框架可以取调用服务提供者提供的服务,但有一个前提是我们要能找到这个服务。通常我们的服务部署都是集群多节点的部署,所以在消费者这端就不可能直接写死在代码里面,这时就涉及到了服务的发现问题,这时就需要另一个组件注册中心了。在微服务架构中,服务与服务之间要实现接口的调用我们肯定要通过相关的RPC(Remote Procedure Call)框架来实现。
2024-03-05 08:39:25
188
原创 Activiti7 整合SpringBoot
由于activiti7是使用mybatis作为orm框架,我这里整合mybatis-plus,所以需要抛出mybatis。
2024-02-01 22:27:02
492
原创 Activiti工作流引擎
Alfresco软件在2010年5月17日宣布Activiti业务流程管理(BPM)开源项目的正式启动,其首席架构师由业务流程管理BPM的专家 Tom Baeyens担任,Tom Baeyens就是原来jbpm的架构师,而jbpm是一个非常有名的工作流引擎,当然activiti也是一个工作流引擎。
2024-01-30 20:27:21
1140
原创 常见的工作流引擎
结论是activiti谨慎选择。flowable基于activiti6衍生出来的版本,flowable目前最新版本是v6.6.0,开发团队是从activiti中分裂出来的,修复了一众activiti6的bug,并在其基础上研发了DMN支持,BPEL支持等等,相对开源版,其商业版的功能会更强大。(1)camunda支持流程实例的迁移,比如同一个流程有多个实例,多个流程版本,不同流程实例运行在不同的版本中,camunda支持任意版本的实例迁移到指定的流程版本中,并可以在迁移的过程中支持从哪个节点开始。
2024-01-30 17:52:06
2982
原创 常见的系统架构及演变过程
系统架构是指系统研发过程中,负责根据需求确定主要的技术选型,主要的开发工具,设计系统的整体框架结构。随着互联网的发展,网站应用的规模不断扩大,需求的不断增加,带来的技术上的巨大压力。系统架构也因此不断地更新、升级、迭代。
2024-01-14 18:10:30
1943
原创 微服务基础架构
是基于Spring生态系统之上构建的APISpring 5.x和。旨在提供一种简单而有效的方法来路由到API安全性监视/指标限流等。API Gateway(APIGW / API 网关),顾名思义,是系统对外的唯一入口。API网关封装了系统内部架构,为每个客户端提供定制的API。近几年来移动应用与企业间互联需求的兴起。从以前单一的Web应用,扩展到多种使用场景,且每种使用场景对后台服务的要求都不尽相同。这不仅增加了后台服务的响应量,还增加了后台服务的复杂性。
2024-01-11 22:57:38
432
原创 Python 爬虫技术
Python 是一种功能强大的编程语言,能够以快速且高效的方式进行网页爬取和数据抓取。网络爬虫是一项有挑战性的任务,需要具备技能和注意事项,例如如何防止被封禁、如何处理动态网页、如何访问需要身份验证的页面等。因此,在进行网络爬取操作时,应格外小心,并遵守规定和道德准则。
2023-12-18 10:38:26
670
原创 ElasticSearch(搜索引擎)
ES 是一个开源的分布式搜索引擎,可以来实现搜索、日志统计、分析、系统监控; ES易于扩展,可以轻松扩展到上百台服务器,处理PB(1PB=1024TB 1TB=1024GB)级别的数据; ES自身携带分布式协调管理功能,但仅支持json文件格式。
2023-12-13 17:23:22
375
原创 Docker(容器化技术)
1、什么是沙箱机制?就是将java代码限定在虚拟机(jvm) 特定的运行范围中,并且严格限制代码对本地系统资源的访问,通过这样的措施来保证对代码的有效隔离,防止对系统造成破坏。等同于java中的类 实例化之前等同于Java中的对象 实列化之后等同于maven,仓库用来保存镜像t=N7T8t=N7T8docker安装-阿里云开发者社区docker安装https://developer.aliyun.com/article/1248715?
2023-12-06 16:56:32
704
1
原创 线程的生命周期
线程状态描述NEW(新建)线程刚被创建,但是并未启动Runnable(可运行)线程已经调用了start()等待CPU调度Blocked(锁阻塞)线程在执行的时候未竞争到锁对象,则该线程进入Blocked状态Waiting(无限等待)一个线程进入Waiting状态,另一个线程调用notify或者notifyAll方法才能够唤醒Timed Waiting(计时等待)同waiting状态,有几个方法有超时参数,调用他们将进入Timed Waiting状态。
2023-12-03 22:08:49
58
原创 Spring Security
虽然Spring Security给我们提供了登录页面,但是对于实际项目中,大多喜欢使用自己的登录页面。所以Spring Security中不仅仅提供了登录页面,还支持用户自定义登录页面。实现过程也比较简单,只需要修改配置类即可。说明:在上面代码基础上进行修改认证就是取得合法身份,比如京东需要用户登录以后才能才能下订单,这里的登录就是认证。登录成功以后就具有了合法身份可以继续进行下一步的操作。
2023-11-23 19:19:15
176
原创 Linux操作系统
lrwxrwxrwx. 1 root root 8 Jun 16 2021 sbin -> usr/sbin //Super User bin (系统管理员使用的系统管理程序)drwx------. 2 root root 16384 Jun 16 2021 lost+found //崩溃目录(无归属、已损坏)dr-xr-x---. 5 root root 4096 Sep 7 2022 root //超级用户的主目录。
2023-11-20 11:07:26
537
原创 【线程池】
●线程池就是一个可以复用线程的技术。线程池如何处理Runnable任务?●使用ExecutorService的方法:●线程池ExecutorService的实现类:ThreadPoolExecutor。
2023-10-27 00:16:26
116
原创 【线程同步】
●为了解决线程安全问题●为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock,更加灵活、方便。●Lock实现提供比使用synchronized方法和语句可以获得更广泛的锁定操作。●Lock是接口不能直接实例化,这里采用它的实现类ReentrantLock来构建Lock锁对象。方法名称说明获得Lock锁的实现类对象。
2023-10-27 00:03:37
75
1
原创 Thread的常用方法
1、此方法是Thread类的静态方法,可以直接使用Thread类调用。2、这个方法是在哪个线程执行中调用的,就会得到哪个线程对象。
2023-10-26 23:58:25
67
1
原创 多线程的创建
●线程(thread)是一个程序内部的一条执行路径。●启动程序执行后,main方法的执行其实就是一条单独的执行路径。●程序中如果只有一条执行路径,那么这个程序就是单线程的程序。●多线程是指从软硬件上实现多条执行流程的技术。●直接调用run方法会当成普通方法执行,此时相当于还是单线程执行。●只有调用start方法才是启动一个新的线程执行。
2023-10-26 23:44:05
77
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人