自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序猿踩坑集锦

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

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

原创 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 908

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

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

2025-12-04 11:12:32 909

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

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

2025-12-02 16:59:55 528

原创 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 471

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

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

2025-11-19 16:32:09 508

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

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

2025-11-18 17:04:07 337

原创 Spring Boot中的Optional如何使用

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

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

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

在 Spring Boot 中,和。

2025-10-30 16:06:05 622

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

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

2025-09-18 09:44:28 476

原创 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 653

原创 五分钟了解Java 中的锁

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

2025-07-24 15:10:25 1088

原创 NebulaGraph 图数据库介绍

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

2025-06-26 22:20:54 932

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

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

2025-06-25 17:39:50 830

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

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

2025-06-25 16:50:11 627

原创 Linux权限详解

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

2025-05-29 10:00:16 590

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

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

2024-03-29 12:11:02 1637

原创 JVM内存溢出排查

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

2024-03-22 22:47:20 917

原创 Java类的加载过程

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

2024-03-21 22:56:44 590

原创 MongoDB 和 MySQL 的区别

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

2024-02-28 17:58:34 6876

原创 Hbase和Clickhouse对比简单总结

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

2024-02-23 11:38:35 4786 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 1756

原创 五分钟理解NIO与BIO

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

2023-08-02 18:07:02 885

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

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

2023-07-04 19:07:32 515

原创 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 2435

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

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

2023-06-13 17:31:29 161

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

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

2023-02-13 15:28:42 227

原创 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 7196 1

原创 Spring Boot 集成JFreeChart 生成图表

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

2022-09-07 16:03:22 1458

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

ftp工具

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

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

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

2022-07-04 16:01:55 4154

原创 Spring Boot 快速集成Kafka

1. 添加依赖2.生产者配置3.发送消息service 中添加4.消费者配置5.消息监听 新增消息监听类

2022-06-23 16:54:30 862

原创 FTP主动和被动模式区别

FTP是用来在两台计算机之间传输文件,是互联网中应用非常广泛的服务之一。FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,采用客户/服务器模式,不支持UDP协议。FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式。与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口)和20(数据端口)。但FTP工作方式的不同,数据端口并不总是20。FTP支持两种方式的传输:文本(ASCII)方式和..

2022-05-31 15:22:46 3536 3

原创 计算机网络相关知识点

OSI,TCP/IP,五层协议的体系结构,以及各层协议OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。每一层的协议如下:物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器,网关)数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)网络层:IP、ICMP、ARP、RARP、OSPF、IPX、

2022-02-10 16:43:44 368

原创 使用Docker grokzen/redis-cluster快速搭建redis 集群

docker run -i -t -p 7000:7000 -p 7001:7001 -p 7002:7002 -p 7003:7003 -p 7004:7004 -p 7005:7005 --net host --name redis-cluster grokzen/redis-cluster

2022-01-19 14:46:34 2125

原创 Spring Boot 整合Netty 登录、心跳、自定义编解码、重连

什么是Netty?Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。Netty 是一个广泛使用的 Java 网络编程框架(Netty 在 2011 年获得了Duke's Choice Award,见https://www.java.net/dukeschoice/2011)。它活跃和成长于用户社区,像大型公司 Facebook 和 Instagram 以及流行 开源项目如 Infinispan, HornetQ, Vert...

2021-12-23 11:19:39 9851

转载 基于Spring Boot 的多数据源最新解决方案

简介dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。其支持Jdk 1.7+, SpringBoot 1.4.x 1.5.x 2.x.x。文档 | Documentation详细文档基础必读(免费) · dynamic-datasource · 看云特性支持数据源分组,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。 支持数据库敏感配置信息加密ENC()。 支持每个数据库独立...

2021-10-22 10:16:43 1146

转载 Spring Cloud,Spring Boot ,Spring Cloud Alibaba及组件版本关系

版本说明组件版本关系Spring Cloud Alibaba Version Sentinel Version Nacos Version RocketMQ Version Dubbo Version Seata Version 2.2.6.RELEASE 1.8.1 1.4.2 4.4.0 2.7.8 1.3.0 2021.1

2021-10-21 16:21:40 291

原创 Sentinel 安装

什么是Sentinel Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量 为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景, 例如秒杀(即 突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用 应用等。 完备的实时监控:Sentinel 提供.

2021-10-20 18:14:04 949

原创 Spring Cloud Alibaba +Nacos+Seata 分布式事务案例

组件及版本Spring Cloud:Greenwich.RELEASESpring Cloud Alibaba:2.1.0.RELEASESpring boot:2.1.3.RELEASEMybatis-Plus: 3.4.2Nacos:2.2.0 官网https://nacos.io/zh-cn/index.htmlseata:0.9.0 官网http://seata.io/zh-cn/index.htmlSwagger:2.9.2安装Nacos下载下...

2021-10-19 18:15:40 842

原创 Gitlab 完全卸载

1、停止gitlabgitlab-ctl stop2、卸载gitlab(注意这里写的是gitlab-ce)rpm -e gitlab-ce3、查看gitlab进程ps aux | grep gitlab4、杀掉第一个进程(就是带有好多.............的进程)kill -9 18777杀掉后,在ps aux | grep gitlab确认一遍,还有没有gitlab的进程5、删除所有包含gitlab文件find / -name gitlab

2021-09-08 14:40:43 828

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

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

2018-06-01

Ibatis/mybatis代码生成工具

ibatis 和 mybatis 的代码生成工具

2017-05-19

Spring与quartz整合实例

2017-04-18

空空如也

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

TA关注的人

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