自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序猿踩坑集锦

程序员的成长历程,记录技术学习的点点滴滴

  • 博客(214)
  • 资源 (3)
  • 收藏
  • 关注

原创 Docker 离线安装 GitLab 完整步骤

有网机器拉取+导出镜像,离线机器导入+部署关键配置:本地目录挂载(持久化数据)、端口映射(避免冲突)、配置(访问地址)初始化要点:等待日志、通过获取初始密码、及时修改 root 密码。

2025-12-29 15:47:12 823

原创 Docker Compose中的网络管理

Docker Compose 是 Docker 官方的多容器编排工具,其网络管理是实现多服务互通、隔离、暴露的核心,也是实际使用中最容易踩坑的环节。以下从「核心机制、配置方式、常见问题&解决方案、调试技巧、最佳实践」五个维度,详细讲解 Compose 网络问题,结合实操案例(如之前的 MySQL 部署)让内容更易理解。Docker Compose 基于 Docker 原生网络模型(bridge/host/none/overlay),核心目标是简化多服务间的网络互通,关键规则如下:Compose 支持 Doc

2025-12-24 17:37:46 932

原创 Docker 安装 MySQL 8.0

Docker 安装 MySQL 8.0 的核心是「镜像拉取+持久化挂载+适配 8.0 特性」,重点关注密码复杂度、字符集、认证插件和时区配置,避免踩坑。只要保证目录权限正确、端口开放、密码合规,即可快速部署稳定的 MySQL 8.0 实例。

2025-12-24 16:46:42 1103

原创 使用LangChain4j +Springboot 实现大模型与向量化数据库协同回答

检索:将用户问题向量化,从向量库获取语义相似的知识片段;增强:用结构化 Prompt 约束大模型仅基于检索结果回答;生成:调用本地大模型生成回答,结合对话记忆实现多轮交互。该方案完全私有化部署,数据不出内网,适配企业级 RAG 场景的准确性、安全性和性能要求,可直接作为智能客服、内部知识库问答等场景的核心架构。

2025-12-24 14:17:15 1066

原创 RAG 概念详解

RAG 是连接 LLM 与外部知识的桥梁,通过“检索+生成”的模式,既保留了 LLM 生成自然语言的能力,又解决了其知识过时、易产生幻觉、无法访问私有数据的痛点。它是当前企业落地 AI 应用的主流方案,结合 LangChain4j 框架和 Ollama 本地模型,可快速搭建私有化、低成本的 RAG 系统。

2025-12-24 10:56:24 640

原创 企业级私有化 RAG 项目的详细实施步骤

企业级私有化 RAG 项目的核心目标是,全程数据不出内网,适配企业私有文档、业务系统数据,支撑智能客服、内部知识查询、合规问答等场景。实施流程分为,从需求调研到运维迭代,覆盖全生命周期,技术栈建议选择(JVM 生态,贴合企业级开发习惯)。

2025-12-24 10:53:33 672

原创 大模型应用开发介绍(概念,组件,技术)

快速原型验证Java企业级应用高并发生产环境私有化部署(数据隐私优先):Ollama + LangChain4j + 本地向量数据库(Chroma/Milvus)

2025-12-24 10:40:24 763

原创 Centos7 离线安装Minio

从https://dl.min.io/server/minio/release/linux-amd64/minio 下载 minio 离线安装包.将下载好的 二进制文件传到服务器指定目录(推荐 ),传输方式可选:U盘/移动硬盘:拷贝文件到U盘,挂载到服务器后复制至 。二、基础环境准备(离线服务器执行)1. 创建必备目录(程序/数据/日志)MinIO 需独立目录存储程序、数据、日志,避免文件混乱:2. 赋予 MinIO 执行权限3. 关闭 SELinux(必做,否则权限报错)CentOS

2025-12-22 16:54:39 1081

原创 Docker 安装 Redis

Redis 默认数据存储在容器内部,容器删除后数据丢失,需挂载宿主机目录实现持久化,同时自定义配置(如密码、访问权限)。核心配置需覆盖访问权限、密码、持久化、内存限制# 写入配置文件到 /data/redis/conf/redis.conf cat > /data/redis/conf/redis.conf << EOF# 允许所有IP访问(生产环境可改为内网IP,如 192.168.1.0/24)# 关闭保护模式(否则仅本地能访问)# 端口(默认6379,可自定义)port 6379。

2025-12-18 10:48:28 882

原创 xxx is not in the sudoers file. This incident will be reported问题解决

创建的Centos 虚拟机,开机后使用sudo su 切换root 用户是报错。提示,说明该用户无任何 sudo 权限,(绕过权限验证),要么直接重置 root 密码、要么将普通用户加入 sudoers 文件。

2025-12-17 10:04:17 666

原创 CentOS 7 RPM 安装 MySQL 8 详细步骤

8.0.44+ 版本必须安装包,否则依赖报错;导入 GPG 密钥可解决「NOKEY」警告;RPM 安装顺序不可乱(common → plugins → libs → client → server);密码必须满足复杂度要求,否则无法修改。按以上步骤执行,可稳定完成 CentOS 7 下 MySQL 8 的 RPM 安装,适配最新版本的依赖变化。

2025-12-09 17:23:04 1006

原创 MySQL 自动化定期备份及故障恢复

【代码】MySQL 自动化定期备份及故障恢复。

2025-12-04 11:12:32 925

原创 为什么MultipartFile的输入流只能获取一次?

MultipartFile的输入流只能读取一次,本质是输入流的单向特性底层存储的一次性消费设计框架对性能/内存的优化考量。若需重复使用,只需将内容缓存到字节数组中即可,这是兼顾性能和可用性的最优方案。

2025-12-02 16:59:55 560

原创 javax.xml.bind.JAXBContext 操作 XML 详细使用指南

JAXB(Java Architecture for XML Binding)是Java标准API,用于实现Java对象与XML文档的相互转换。JDK 1.6+内置该功能,JDK 9+需手动引入依赖。核心通过JAXBContext管理绑定关系,配合Marshaller和Unmarshaller完成序列化/反序列化。

2025-11-25 21:23:22 547

原创 使用 docker logs 命令查看容器日志

以外的驱动),部分参数可能不适用。要查看 Docker 容器的最新日志,可以使用。命令结合适当的参数。查看),否则日志可能不更新或显示历史日志。),可能需要直接查看日志文件(路径通常为。根据需求选择合适的方式即可高效定位问题!如果容器使用非默认的日志驱动(如。如果日志量极大,可以通过管道(如果日志被轮转(如通过。

2025-11-19 16:32:09 710

原创 Socket accept failedjava.io.IOException: 打开的文件过多

这个错误表明你的Tomcat服务器遇到了"打开的文件过多"(Too many open files)的问题,导致无法接受新的Socket连接。这是Linux/Unix系统中常见的资源限制问题。

2025-11-18 17:04:07 380

原创 Spring Boot中的Optional如何使用

在Spring Boot中,Optional是Java 8引入的类,用于显式处理可能为null的值,避免。以下是。

2025-11-06 11:09:53 481 1

原创 Spring Boot资源获取:getResourceAsStream vs ResourceUtils

在 Spring Boot 中,和。

2025-10-30 16:06:05 646

原创 Spring Boot 加载配置文件的优先级

在 Spring Boot 中,配置文件的加载优先级遵循一个明确的层次结构,当多个配置源存在时,开发者可以通过调整配置文件的位置、使用 Profile 或命令行参数灵活控制配置的覆盖行为。(命令行参数覆盖所有文件配置)。

2025-09-18 09:44:28 496

原创 spring boot + mybatis 使用线程池异步修改数据库数据

摘要:在SpringBoot+Mybatis中实现多线程异步数据库操作需解决Session线程安全问题。核心方案包括:1)配置ThreadPoolTaskExecutor线程池;2)通过@Async+@Transactional实现异步事务;3)每个线程使用独立SqlSession并确保及时关闭;4)协调连接池与线程池参数;5)加强异常处理和资源监控。关键点在于避免跨线程共享SqlSession,采用try-with-resources保证Session释放,并通过连接池复用优化性能。该方案能有效平衡异步处

2025-09-06 09:55:28 678

原创 五分钟了解Java 中的锁

锁的4中状态:无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态(级别从低到高)。所谓的锁升级、降级,就是 JVM 优化 synchronized 运行的机制,当 JVM 监测到不同的竞争状况是,会自动切换到不同的锁实现。这种切换就是锁的升级、降级。

2025-07-24 15:10:25 1094

原创 NebulaGraph 图数据库介绍

NebulaGraph 通过其独特的图数据模型、分布式架构、高效查询语言(nGQL)及丰富生态工具,成为处理大规模复杂关联数据的理想选择。其核心概念围绕“图空间-点-边-标签-属性”展开,结合索引优化、图算法集成与安全机制,广泛适用于社交、金融、推荐等场景,助力企业挖掘数据深层价值。

2025-06-26 22:20:54 964

原创 Java 8到Java 17 实用的新特性总结

从Java 8到Java 17,Java语言经历了多个版本的迭代,每个版本都带来了实用的新特性。这些特性不仅使Java语言保持现代感,还显著提升了开发者的生产力和应用的运行效率。

2025-06-25 17:39:50 837

原创 Mybatis Plus 内置插件机制,让复杂的问题简单化

MyBatis Plus 作为 MyBatis 的增强工具,提供了丰富的内置插件来扩展功能、优化性能并简化开发。

2025-06-25 16:50:11 650

原创 Linux权限详解

Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。这也是Linux有别于Windows的机制,也是基于这个权限机制,Linux可以有效防止病毒自我运行,因为运行的条件是必须要有运行的权限,而这个权限在Linux是用户所赋予的。

2025-05-29 10:00:16 608

原创 账号多端互踢实现思路

你需要一个机制来跟踪每个账号的当前登录状态。这通常通过数据库、缓存系统(如Redis)或分布式会话管理来实现。:当用户尝试登录时,系统需要验证其凭据,并在验证成功后更新其登录状态。:为每个登录的会话分配一个唯一的标识符(如JWT、Session ID等),并在用户与系统进行交互时使用此标识符来识别用户。:当检测到同一账号在另一个终端登录时,需要有一个逻辑来找到并终止前一个会话。

2024-03-29 12:11:02 1681

原创 JVM内存溢出排查

如果是方法区内存溢出,可能是因为使用了过多的静态变量、常量池被大量占用,或者第三方框架(如Hibernate、Spring)产生了大量的动态类。这些工具可以帮助识别哪些对象占用了过多的内存,以及这些对象是如何被引用的。通过查看GC日志,可以了解垃圾回收的情况,包括回收的频率、回收的对象数量等。内存泄露是导致内存溢出的常见原因。通过工具分析堆转储文件,可以检查是否存在无用的对象被长时间持有引用,导致无法被GC回收。如果堆内存确实不足,可以考虑调整JVM的启动参数,如增加-Xmx参数的值以增大堆内存的最大值。

2024-03-22 22:47:20 941

原创 Java类的加载过程

JVM有三大类加载器,包括Bootstrap根加载器、Extension类加载器和System类加载器,它们之间遵循父委托机制,即子类加载器在加载类之前,会先委托父类加载器去加载,只有当父类加载器无法加载到类时,子类加载器才会尝试自己去加载。请注意,虽然上述五个步骤是Java类加载的主要过程,但在实际应用中,类的加载可能受到多种因素的影响,如类的使用方式、类加载器的配置等。类加载器根据类的全限定名查找并读取类的字节码文件,然后将其转换为内部数据结构,并创建一个Class对象来表示这个类。

2024-03-21 22:56:44 594

原创 MongoDB 和 MySQL 的区别

总体来说,MongoDB更适合需要灵活方便地存储非结构化数据的场景,MySQL更适合结构化数据和需要事务支持的场景。MongoDB 存储的是文档型数据(JSON格式),MySQL 存储的是结构化的表格数据。MongoDB是一个基于分布式文件存储的数据库,可以方便地扩展到大量的数据和高并发。MongoDB是动态模式,这意味着同一个集合里的文档不需要有相同的字段和结构。MongoDB使用的是面向文档的查询语言,可以对JSON格式的数据进行查询。MongoDB 是文档型数据库,MySQL 是关系型数据库。

2024-02-28 17:58:34 6890

原创 Hbase和Clickhouse对比简单总结

Hbase和Clickhouse是两种不同的数据库系统,它们各自适用于不同的场景。以下是两者之间的对比:数据模型:数据处理能力:可扩展性和可靠性:存储引擎:性能:总结来说,HBase 和 ClickHouse各有优势,选择哪一种取决于具体的应用需求。HBase 适合需要快速随机访问的大规模数据集,而 ClickHouse 更适合 OLAP 工作负载和高可用性的环境。

2024-02-23 11:38:35 4857 2

转载 ClickHouse与Elasticsearch对比

优点:ClickHouse写入吞吐量大,单服务器日志写入量在50MB到200MB/s,每秒写入超过60w记录数,是ES的5倍以上。 查询速度快,官方宣称数据在pagecache中,单服务器查询速率大约在2-30GB/s;没在pagecache的情况下,查询速度取决于磁盘的读取速率和数据的压缩率。。 ClickHouse比ES服务器成本更低。一方面ClickHouse的数据压缩比比ES高,相同数据占用的磁盘空间只有ES的1/3到1/30,节省了磁盘空间的同时,也能有效的减少磁盘IO;另一方面Click

2023-08-22 18:30:30 1794

原创 五分钟理解NIO与BIO

- Blocking IO 即阻塞式 IO。-- Non-Blocking IO, 即非阻塞式 IO 或异步 IO。BIO 基于字节流和字符流进行操作,数据的读取写入必须阻塞在一个线程内等待其完成。NIO 基于 Channel 和 Buffer 进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。Selector 用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个线程可以监听多个数据通道,处理多个事件。

2023-08-02 18:07:02 890

原创 自定义线程池线程数量设置

一个计算为主的程序(CPU密集型程序),多线程跑的时候,可以充分利用起所有的 CPU 核心数,比如说 8 个核心的CPU ,开8 个线程的时候,可以同时跑 8 个线程的运算任务,此时是最大效率。因此对于 CPU 密集型的任务来说,线程数等于 CPU 数是最好的了。如果是一个磁盘或网络为主的程序(IO密集型程序),一个线程处在 IO 等待的时候,另一个线程还可以在 CPU 里面跑,有时候 CPU 闲着没事干,所有的线程都在等着 IO,这时候他们就是同时的了,而单线程的话此时还是在一个一个等待的。

2023-07-04 19:07:32 530

原创 MySQL之binlog、redolog、undolog

redo log默认情况下存储在data目录下ib_logfile0 、ib_logfile1,可以通过 innodb_log_file_size 设置大小, innodb_log_files_in_group 设置文件个数,比如可以配置为一组4个文件,每个文件的大小是 1GB,整个redo log 日志文件组可以记录4G的内容,2、先写redo log,mysql崩溃,重启,通过redo log恢复事务,但是binlog里并没有这个事务,主从不一致,如果通过binlog来恢复数据,也会丢失事务。

2023-07-04 15:19:11 2448

原创 Java 动态代理和静态代理知识点速记

静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。动态代理:在程序运行时,运用反射机制动态创建而成。

2023-06-13 17:31:29 164

原创 一个批量修改文件名的工具类

一个批量修改文件名的工具类。

2023-02-13 15:28:42 229

原创 linux 快速搭建sftp 服务

1)注释Subsystem sftp /usr/libexec/openssh/sftp-server(若不注释,可以通过"cd / "看到系统所有文件)// 由于sshd_config配置中指定了根目录,根目录无法写入,因此要创建一个用于上传文件的目录。// 目录所有者为mysftp,有写入权限;所有组为sftp,无写入权限。修改SELINUX=disabled,否则重启sshd会提示权限不够。三、创建文件夹作为用户mysftp的根目录。四、修改sshd_config配置。sftp安装已经完成。

2022-10-26 19:19:50 7205 1

原创 Spring Boot 集成JFreeChart 生成图表

Spring Boot 集成JFreeChart 生成饼状图,这是一个demo,开发时根据需要进行自定义可抽取工具类使用。

2022-09-07 16:03:22 1493

原创 Spring Boot 整合 FTP文件上传下载

ftp工具

2022-07-04 19:49:21 2276 1

原创 搭建sftp 出现 Host key verification failed.Couldn‘t read packet: Connection reset by peer 解决

使用sftp命令登录文件服务器报错:

2022-07-04 16:01:55 4168

Spring boot 入门高清视频教程(附源码,笔记)

Spring boot 入门高清视频教程(附源码,笔记),适合新手学习 !!

2018-06-01

Ibatis/mybatis代码生成工具

ibatis 和 mybatis 的代码生成工具

2017-05-19

Spring与quartz整合实例

2017-04-18

空空如也

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

TA关注的人

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