
后台编程
文章平均质量分 54
学亮编程手记
学亮编程手记
展开
-
HikariCP数据库连接池启用JMX监控
使用专业的APM(Application Performance Management)工具,如New Relic、Dynatrace等,它们通常具有更强大的功能来监控应用性能并能检测到连接泄漏等问题。总之,虽然Spring Boot Actuator不能直接帮助你诊断数据库连接泄漏的问题,但结合上述方法,你应该能够找到潜在的问题所在,并采取相应的措施加以解决。:在某些情况下,通过增加数据库连接获取和释放的日志级别,可以有助于发现问题。例如,如果你使用的是HikariCP作为连接池实现,你可以查看类似。原创 2025-05-19 10:50:52 · 247 阅读 · 0 评论 -
Spring Boot Actuator在HZero框架中的配置及使用方法
HZero是一个开源的企业级微服务框架,专为构建大型分布式系统设计。其管理端点基于Spring Boot Actuator实现,开发者可通过以下步骤访问这些端点:首先,确保项目中已引入Spring Boot Actuator依赖;其次,在配置文件中开启并暴露所需端点;接着,可选地通过Spring Security进行安全配置以防止未授权访问;最后,通过浏览器或工具如Postman访问端点,默认地址格式为http://<ip>:<port>/actuator/<endpoint&原创 2025-05-19 10:49:48 · 136 阅读 · 0 评论 -
MinIO分布式集群纠删码的默认配置及修改方法
MinIO分布式集群的纠删码(Erasure Coding)机制是其高可用性和数据保护的核心功能。默认配置下,MinIO采用N/2数据块 + N/2奇偶校验块的策略,可容忍最多N/2个驱动器或节点故障。纠删码集合的驱动器数量需在4到16个之间,且为4的倍数。用户可以通过MinIO客户端工具在创建存储桶时指定纠删码参数,或在集群初始化时配置纠删码集合分布。MinIO官方提供纠删码计算器,帮助用户根据驱动器数量和容错需求选择最佳配置。需要注意的是,纠删码集合的大小和数量在集群初始化后无法更改,且修改纠删码策略可原创 2025-05-12 08:47:19 · 296 阅读 · 0 评论 -
MinIO 的纠删码机制通俗介绍
MinIO的纠删码机制通过将数据拆分成多个碎片并生成校验块,实现数据的高效备份和恢复。以文件为例,文件被分成4个数据块和2个校验块,分散存储在不同位置。即使丢失任意2个块,也能通过剩余块恢复完整数据。相比传统备份,纠删码在保证数据安全的同时节省了存储空间(如4+2模式仅需1.5倍空间,而传统备份需3倍)。此外,MinIO允许灵活配置冗余力度,如6+3模式可容忍3个块丢失,但存储成本相应增加。纠删码通过数学算法编码和分布存储,确保在硬件故障时数据可恢复,特别适合海量数据存储场景。原创 2025-05-12 08:38:39 · 287 阅读 · 0 评论 -
MinIO分布式集群的扩展方案及实现:基于命令行和 etcd 动态扩展
通过以上扩展策略,就可以按需扩展集群。如上命令中,我们可以把原来的集群看做一个集群池,新增集群看做另一个集群池,新对象按每个集群池中的可用空间比例放置在集群池中。注意:mybucket只存在于一个集群cluster1或cluster2中,这是随机的,由domain.com的解析方式决定,如果存在循环DNS,domain.com则将随机选择哪个群集提供存储桶。例如,第一个集群池有8个磁盘,就可以将集群扩展为16个、32个或1024个磁盘的集群池,只需确保部署的SLA是原始集群池的倍数即可。原创 2025-05-09 14:36:41 · 832 阅读 · 0 评论 -
Spring Boot 客户端直连minio集群单个节点进行操作的潜在风险分析
暴露 MinIO 服务,Spring Boot 客户端连接 LB 地址。若因条件限制需直连节点,至少配置。MinIO 分布式集群的每个节点都是对等的(无主从架构),客户端连接任意节点均可执行读写操作。实现数据冗余,即使客户端只连接一个节点,数据也会自动分布到整个集群。将 MinIO 从单节点升级到分布式集群后,(生产环境强制要求)原创 2025-05-09 14:31:58 · 854 阅读 · 0 评论 -
MinIO(版本RELEASE.2021-03-04T00-53-13Z)从单节点实例升级到 4 节点分布式集群的完整操作步骤
本文提供了 RELEASE.2021-03-04T00-53-13Z 版本 MinIO 服务端和 MC 客户端的下载地址,并详细介绍了如何将单节点 MinIO 系统升级为 4 节点分布式集群的完整操作步骤。主要内容包括环境准备、MinIO 集群的安装与配置、数据迁移、验证与切换、旧节点下线等关键步骤。此外,还强调了版本兼容性、安全加固、监控与备份等注意事项,并提供了相关参考文档链接,帮助用户顺利完成升级操作并确保系统安全稳定运行。原创 2025-05-09 14:03:51 · 842 阅读 · 0 评论 -
minio客户端工具mc设置集群别名
通过这两条命令,你可以安全、便捷地在旧集群和新集群之间切换操作,为后续数据迁移和管理提供基础。上述两条命令是用于配置MinIO客户端工具(工具操作时可直接使用别名代替完整地址和凭证。将旧的单节点MinIO实例命名为。等同于列出旧实例的所有存储桶。将新的4节点MinIO集群命名为。,后续可通过别名直接操作新集群。可查看新集群的状态。原创 2025-05-09 11:13:07 · 326 阅读 · 1 评论 -
将单节点MinIO实例升级为4节点分布式集群完整步骤
将单节点MinIO实例升级为4节点分布式集群需要谨慎操作以避免数据丢失。原创 2025-05-09 10:39:18 · 759 阅读 · 0 评论 -
MinIO集群节点扩容
推荐对等扩容:确保节点/磁盘数对等,操作简单且兼容性高。联邦扩容:适用于异构集群或无限扩展需求,但需额外维护etcd。数据迁移:扩容后旧数据不会自动迁移,需通过工具(如mc mirror)或等待新写入均衡。原创 2025-05-07 20:31:42 · 675 阅读 · 0 评论 -
MinIO集群部署示例(4节点分布式)
【代码】MinIO集群部署示例(4节点分布式)原创 2025-05-07 20:30:38 · 814 阅读 · 0 评论 -
Spring Boot中连接MinIO集群和单节点实例
在Spring Boot中连接MinIO集群和单节点实例时,配置文件及核心代码结构基本一致,主要区别在于MinIO服务端的部署配置和部分连接参数。集群部署需至少4个节点(或4块磁盘),且需要保证节点间网络通信正常。若使用Docker部署集群,需确保所有节点使用相同的 MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY。集群部署时,MinIO内部会自动处理节点间的数据分布和冗余,客户端无需关心具体节点。配置文件:集群需配置统一的访问入口(如负载均衡IP),单节点直接配置节点IP。原创 2025-05-07 18:34:05 · 402 阅读 · 0 评论 -
spring状态机介绍及spring-statemachine代码示例
先来解释什么是“状态”( State )。现实事物是有不同状态的,例如一个自动门,就有 open 和 closed 两种状态。我们通常所说的状态机是有限状态机,也就是被描述的事物的状态的数量是有限个,例如自动门的状态就是两个 open 和 closed。状态机,也就是 State Machine ,不是指一台实际机器,而是指一个数学模型。说白了,一般就是指一张状态转换图。例如,根据自动门的运行规则,我们可以抽象出下面这么一个图。原创 2025-05-05 14:23:08 · 646 阅读 · 0 评论 -
Spring 状态机介绍:Spring State Machine框架代码示例(spring-statemachine-starter)
状态机(State Machine)是一种数学模型,用于描述对象在其生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。状态(State):系统所处的状况,如订单的"待支付"、"已发货"等事件(Event):触发状态转换的动作,如"支付"、"发货"等转换(Transition):定义了状态如何根据事件从一个状态转移到另一个状态动作(Action):在状态转换过程中可以执行的逻辑守卫(Guard):条件检查,决定是否允许状态转换支持扁平单级状态机和分层状态机结构。原创 2025-05-04 18:49:59 · 945 阅读 · 0 评论 -
SpringBoot实现接口幂等性的5种方案
幂等性是分布式系统设计中的重要概念,特别是在Spring Boot应用中实现接口幂等性对于保证数据一致性和系统稳定性至关重要。下面我将详细介绍多种实现方案及其具体实现方式。原创 2025-05-04 18:46:26 · 785 阅读 · 0 评论 -
JaCoCo使用示例:Spring Boot项目中代码覆盖率统计实践
JaCoCo(Java Code Coverage)是一个广泛使用的Java代码覆盖率工具,可以帮助开发者评估测试完整性。下面我将详细介绍在Spring Boot项目中如何使用JaCoCo进行代码覆盖率统计,包括基本配置、高级用法和最佳实践。原创 2025-05-04 18:40:41 · 697 阅读 · 0 评论 -
使用Sentinel实现SpringBoot服务限流代码示例
对于RESTful风格的URL(如/user/1/user/2),可以使用UrlCleaner将它们统一清洗为/user/*@Component@Override基本的接口限流功能热点参数限流自定义URL资源清洗统一的限流异常处理规则持久化到Nacos与Feign整合实现熔断降级Sentinel提供了丰富的流量控制策略,包括直接限流、关联限流、链路限流等多种模式,以及快速失败、Warm Up、排队等待等多种流控效果。原创 2025-05-04 18:38:03 · 644 阅读 · 0 评论 -
SpringBoot应用中实现基于Resilience4j的服务限流功能代码示例
Resilience4j是一个轻量级的容错库,提供了多种容错模式,包括断路器、重试、限流等。下面我将详细介绍如何使用Resilience4j在Spring Boot应用中实现服务限流功能。原创 2025-05-04 18:33:25 · 245 阅读 · 0 评论 -
Kafka 4.x(基于 KRaft 模式)的常用命令及示例
注意:Kafka 4.0 默认不再依赖 ZooKeeper,配置文件路径变更为。输出包括分区分布、副本状态、Leader 信息等。输出各 Broker 磁盘使用情况和分区分布。用于均衡 Leader 分布。输入消息后按回车发送,支持。分区数只能增加,不可减少。查看帮助文档,或参考。用于计算消息积压量。原创 2025-05-04 13:35:33 · 758 阅读 · 0 评论 -
Redis7常用命令及示例
查看详细文档(Redis 7新增),或访问。注意:大数据量会阻塞服务,建议用。用于测试用户是否能执行命令。替代旧版单槽操作,提升效率。原创 2025-05-04 13:34:21 · 324 阅读 · 0 评论 -
sonarqube 7.6报错: module java.base does not “opens java.lang“ to unnamed module
可能是sonar-scanner-cli的版本过高,试着降低版本号后再试一下。我的版本为5.x运行报错,降低到4.2就可以正常扫描了。原创 2025-04-28 16:06:21 · 132 阅读 · 0 评论 -
Apache Calcite跨数据源查询完整案例:MySQL与Doris联合SQL查询
首先需要准备必要的依赖,以下是Maven配置示例:</</</</</</</</</</</</</注意:Doris兼容MySQL协议,因此可以使用MySQL JDBC驱动连接Doris。原创 2025-04-13 15:23:58 · 414 阅读 · 0 评论 -
Apache Calcite功能介绍及与Spring Boot + MyBatis整合案例
可以通过修改Parser.jj文件或使用FMPP技术自定义SQL语法。原创 2025-04-13 15:20:01 · 793 阅读 · 0 评论 -
springboot + hibernate + apache calcite 实现 MySQL + postgresql 多数据源联合查询完整代码案例
/ 定义Calcite模型JSON字符串" {\n" +" }\n" +" }\n" +" ]\n" +"}";// 创建Calcite连接// 获取根模式并添加子模式@Overrideorgapachecalciteschema// 返回表映射,这里不需要额外处理。原创 2025-04-13 15:15:40 · 324 阅读 · 0 评论 -
Spring AI Alibaba OpenManus 代码示例
【代码】Spring AI Alibaba OpenManus 代码示例。原创 2025-03-29 13:27:53 · 629 阅读 · 0 评论 -
Spring Boot 项目中 application.properties 和 application.yml 的配置优先级
在 Spring Boot 中,application.properties。取决于它们的加载顺序和位置。可以通过 Spring Boot 的。对象查看最终生效的配置值。运行后,输出会显示最终生效的。由于它们位于同一优先级位置(原创 2025-03-24 13:47:16 · 354 阅读 · 0 评论 -
springboot maven项目存在项目依赖场景下的配置优先级剖析
它们配置文件的优先级规则决定了不同位置的配置如何合并或覆盖。)出现在同一优先级位置时,它们的加载顺序取决于它们在 classpath 中的顺序。后加载,因此项目 A 的配置会覆盖项目 B 的同名配置。,项目 B 的配置会覆盖项目 A 的配置。是冗余的,可以修改项目 A 的构建配置,的优先级不同,但用户问题中均为。:行为类似,但需注意依赖声明顺序。在 Spring Boot 中,:当多个同名配置文件(如。会先加载,项目 A 的。此时优先级高于依赖中的。例如,将项目 B 的。原创 2025-03-24 13:44:52 · 1225 阅读 · 0 评论 -
Apache Tika代码示例:使用 Tika 从 PDF 文件中提取文本
是一个内容分析工具包,它能够从各种类型的文档中提取元数据和文本内容。Tika 支持多种文件格式,包括但不限于 PDF、Word 文档、Excel 表格、PowerPoint 演示文稿、HTML、XML、图像文件等。Tika 的设计目标是提供一种简单且一致的方式来处理不同格式的文件。原创 2025-03-19 17:22:40 · 997 阅读 · 0 评论 -
基于 Spring Boot + Apache Tika 实现数据泄露防护(DLP)和敏感信息检测代码示例
【代码】基于 Spring Boot + Apache Tika 实现数据泄露防护(DLP)和敏感信息检测代码示例。原创 2025-03-19 17:17:09 · 349 阅读 · 0 评论 -
SpringReport开源Spring Boot报表系统
项目名称技术栈主要功能: 报表生成、报表管理、用户权限管理。原创 2025-03-19 16:53:14 · 1334 阅读 · 0 评论 -
Nextcloud开源网盘项目结构及目录分析
仓库地址主要语言: PHP许可证: AGPL-3.0主要功能文件存储和同步协作编辑日历和联系人管理多种客户端支持(Web、桌面、移动)插件系统,支持扩展功能。原创 2025-03-18 11:30:18 · 340 阅读 · 0 评论 -
Hoppscotch(原名Postwoman)安装及使用示例:一款开源的API开发与测试工具
Hoppscotch(原名Postwoman)是一款开源的API开发与测试工具,旨在为开发者提供轻量、高效且免费的解决方案,替代传统工具如Postman和Insomnia。它基于浏览器运行,支持多种协议(如HTTP、GraphQL、WebSocket、MQTT等),并提供了直观的界面和丰富的功能,适用于个人开发者及团队协作。支持Web、桌面端(Mac/Windows/Linux)及命令行(CLI),无需安装即可通过浏览器直接使用。在“Headers”标签页中,输入自定义头信息(如。原创 2025-03-18 09:49:28 · 976 阅读 · 0 评论 -
springboot + vuejs 开源奇文网盘前后端部署完整步骤
在windows下点击winstart.bat之后会出现Spring Boot的启动黑窗口,这个窗口不能关闭,关闭就意味着程序结束,当出现如下字样,说明后台已经启动成功。DML脚本:项目初始化数据脚本存放在静态目录下:/resource/import.sql,项目启动后需要执行该初始化脚本,如果没有执行,则会报错,参见:常见问题2。DDL脚本:为了便于管理,本项目的建表使用JPA模型映射技术,因此数据库配置完成后,启动项目即可,系统会自动完成整个建表过程。原创 2025-03-16 14:09:07 · 882 阅读 · 0 评论 -
git命令示例:合并master分支到uat分支
【代码】git命令示例:合并master分支到uat分支。原创 2025-03-15 22:12:39 · 141 阅读 · 0 评论 -
MySQL数据doris入仓:结合Flink CDC、Doris Sink以及Redis重试队列的完整代码实现
【代码】MySQL数据doris入仓:结合Flink CDC、Doris Sink以及Redis重试队列的完整代码实现。原创 2025-03-15 11:46:49 · 432 阅读 · 0 评论 -
Flink CDC 精准捕获数据变更 + 异步批量处理提升吞吐 + Redis 实现高效重试
满足高性能、高可靠性的数据同步需求。实际部署时需根据数据量调整分页大小和线程池参数。Stream Load写入Doris。Flink CDC实时捕获。ID是否存在于Doris?写入Redis并设置TTL。MySQL Users表。原创 2025-03-14 17:32:08 · 785 阅读 · 0 评论 -
MySQL to Doris: 基于JDBC的高效数据同步实现方案,结合分页批处理、Redis重试队列及Doris Stream Load批量写入
该方案通过JDBC批量处理+Redis重试队列+Stream Load的组合,在避免使用Flink CDC的同时,仍能实现每小时千万级数据的稳定同步。:集群部署时增加Redis分布式锁,避免重复执行全量同步。:对成功导入的数据增加Redis白名单,避免重复扫描。:对Stream Load失败批次增加指数退避重试。Stream Load批量写入Doris。重新检查Doris存在性。批量检查Doris存在性。扫描Redis重试队列。全量分页扫描MySQL。写入Redis重试队列。获取MySQL全量数据。原创 2025-03-14 17:31:09 · 1021 阅读 · 0 评论 -
MySQL导入数据到doris时数据存在性判断架构流程图
Stream Load批量写入Doris。Stream Load写入Doris。Flink CDC实时捕获。ID是否存在于Doris?写入Redis并设置TTL。MySQL Users表。重新检查Doris存在性。批量检查Doris存在性。扫描Redis重试队列。全量分页扫描MySQL。写入Redis重试队列。获取MySQL全量数据。原创 2025-03-14 17:14:11 · 623 阅读 · 0 评论 -
idea sonarlint插件下载地址及版本适配说明:SonarQube for IDE
也不能按照页面介绍的进行下载,可能不适配。注意:idea和sonarlint的版本强关联,如果插件集成后报错,就换个版本试一下。原创 2025-03-14 13:44:15 · 631 阅读 · 0 评论 -
基于 Spring Boot + Mybatis 拦截器 + JSqlParser 实现数据隔离的完整代码案例
拦截所有 SQL 操作(原创 2025-02-26 16:27:32 · 270 阅读 · 0 评论