自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Springboot 中使用 List<Integer> 与 JSONArray 处理 JSON 数组的性能与实践

需求场景推荐方案关键优势严格类型检查List编译期安全保障高频次请求List自动化反序列化提升吞吐量动态数据结构JSONArray灵活处理混合类型内存敏感型应用JSONArray原始类型存储降低内存消耗避免框架依赖JSONArray仅需轻量级 JSON 库最终建议优先使用保证类型安全和性能仅在必要时采用JSONArray应对动态场景结合 JMH 基准测试验证具体场景下的性能表现通过合理选择数据接收方式,可在系统性能、代码可维护性和功能灵活性之间找到最佳平衡点。

2025-03-31 13:28:39 454

原创 基于 AOP 实现的限流方案:Sentinel 与 Guava RateLimiter 对比分析

Sentinel 是阿里巴巴开源的一款流量控制组件,它提供了实时监控、限流、熔断等功能。结合 AOP 可以在不修改原有业务代码的前提下,对接口进行限流。Guava 是 Google 开源的 Java 工具库,其中的类可以实现简单的限流功能。结合 AOP 同样可以实现非侵入式的限流。Sentinel 功能丰富,除了限流外,还支持熔断、降级等多种流量控制策略,适用于复杂的业务场景。Guava RateLimiter 功能相对单一,主要用于简单的限流,适合对功能要求不高的场景。

2025-03-31 13:23:55 992

原创 异步操作中的潜在问题及影响分析

异步后通过线程池调用 HTTP 请求通知 API 服务以及 Java 异步存储日志到 MongoDB 这两个典型场景下,这些问题值得我们深入剖析。

2025-03-28 09:52:44 357

原创 Kafka 中相同代码实例消费主题时的数据拉取情况解析

Kafka设计了消费者组这样一种巧妙的机制来管理消息的消费。简单来说,消费者是通过加入消费者组来对主题中的消息进行消费操作的。在同一个消费者组内的各个消费者,会共同协作来消费主题所包含的所有分区。值得注意的是,Kafka有着出色的协调能力,它能够确保同一个分区的数据在同一时刻只会被该消费者组内的某一个消费者进行处理。这样的设计有着重要意义,它实现了数据的负载均衡以及并行处理,使得整个消息消费过程更加高效、有序,避免了重复处理和资源浪费等问题。

2025-03-28 09:46:44 507

原创 EXPLAIN 计划中 filtered 含义及作用解析

在数据库查询优化的领域中,EXPLAIN计划是深入了解查询执行过程的有力工具。其中,filtered这一指标扮演着关键角色,它为开发者和数据库管理员提供了关于查询执行效率的重要洞察。filtered。

2025-03-27 16:52:44 419

原创 分布式锁实战:Redis与Redisson的深度解析

Redis原生方案适用于轻量级场景,需关注原子性与锁过期问题Redisson框架通过自动续期、多种锁模式等特性,提供了企业级的分布式锁解决方案在实际应用中,应根据系统规模、一致性要求和业务特性选择合适的实现方式,同时结合监控和报警机制保障系统的稳定性。

2025-03-26 10:27:45 429

原创 Spring Boot 集成 Kafka 消息发送方案

/ 序列化逻辑 } public class KafkaMessageSender {= null) {} else {} } });} }// 序列化逻辑 } public class KafkaMessageSender {= null) {} else {} } });} }// 序列化逻辑 } public class KafkaMessageSender {

2025-03-20 11:06:42 1006

原创 Spring Boot 动态配置管理:ZooKeeper 集成与 Redis 配置覆盖实践

集中化管理:所有配置统一存储在 ZooKeeper动态刷新:支持配置实时更新高可用性:基于 ZooKeeper 的分布式特性。

2025-03-17 10:38:54 776

原创 Spring Boot 读取 ZooKeeper (ZK) 属性的总结指南

通过以上步骤,你可以在 Spring Boot 中优雅地读取和管理 ZooKeeper 的配置属性。在任意 Spring Bean 中注入。如果需要切换不同的 ZK 源(如。

2025-03-12 15:58:50 527

原创 Spring Boot 项目部署启动异常问题分析与解决​:主类缺失与依赖冲突的分析

插件选择:在 Spring Boot 项目中,优先选用,以避免手动配置Main-Class,减少潜在的配置错误。在功能上更贴合 Spring Boot 项目特性,从打包到启动都能提供全面支持,而难以满足 Spring Boot 项目复杂的需求。依赖管理:应尽量避免显式排除核心依赖(例如 Tomcat)。若确实需要自定义容器,务必依据官方文档的指导进行配置,以确保项目的稳定性和兼容性。版本兼容性:高版本的插件虽然可能引入新特性,但同时也可能带来 Breaking Changes。

2025-03-12 10:34:33 1070

原创 @Async 使用手册

Async 是 Spring 框架提供的一个注解,用于实现方法的异步执行。当一个方法被 @Async 注解标注后,Spring 会在调用该方法时,将其放入线程池中异步执行,而不会阻塞当前线程。

2025-03-06 11:26:07 860

原创 MyBatis-Plus 使用总结

先定义业务接口,继承。

2025-03-05 14:37:27 303

原创 MySQL优化示例 2:小表关联大表

在进行表关联操作时,通常情况下让小表关联大表(也可以理解为用小表驱动大表)是更优的选择。

2025-03-03 14:15:36 199

原创 MySQL优化示例 1:关联查询

在 SQL 中,WITH 关键字用于创建公共表表达式(Common Table Expressions,CTE)。CTE 是一种临时命名的结果集,它存在于单个 SQL 语句的执行范围内,可在该语句中被多次引用。下面为你详细解析 WITH 关键字及其使用场景和优势。从 MySQL 8.0 版本开始,MySQL 正式支持公共表表达式(CTE),这意味着你可以使用 WITH 关键字来创建 CTE。而在 MySQL 8.0 之前的版本,比如 MySQL 5.x 系列,是不支持 WITH 语法的。

2025-02-28 17:25:24 179

原创 Java 获取10/13位长度的时间戳

【代码】Java 获取10/13位长度的时间戳。

2025-02-25 10:57:38 138

原创 Java 中 HTTP 协议版本使用情况剖析

HTTP/2 是新一代 HTTP 协议,采用多路复用的二进制分帧层,解决了队头阻塞问题,提升了连接利用率和传输效率。HttpURLConnection 是 Java 早期用于处理 HTTP 请求的类,默认使用 HTTP/1.1 协议,且不直接支持 HTTP/2 协议。若服务器支持则使用 HTTP/2,不支持则回退到 HTTP/1.1。本文将深入探讨 Java 不同网络请求工具默认使用的 HTTP 协议版本,包括 HTTP/1.1 和 HTTP/2 的特点,以及在 Java 中的应用情况。

2025-02-21 10:12:45 627

原创 springboot多实例部署时,@Scheduled注释的方法重复执行

springboot多实例部署时,@Scheduled注释的方法重复执行。

2025-02-20 14:23:48 338

原创 设计模式之工厂模式

工厂模式属于创建型设计模式,主要用于处理对象的创建机制,将对象的创建和使用分离,使得系统能够更灵活、更高效地创建对象。工厂模式包括简单工厂模式、工厂方法模式和抽象工厂模式。

2025-02-10 15:15:18 582

原创 设计模式之策略模式

客户端不再需要直接创建具体策略类的实例,而是通过工厂类提供的静态方法 getStrategy 来获取所需的策略。提高可维护性和可扩展性:当需要新增一种会员折扣策略时,只需要在工厂类的 strategyMap 中添加新的键值对,同时创建对应的具体策略类即可,不需要修改客户端代码和环境类代码。这符合开闭原则,对扩展开放,对修改关闭。在普通的策略模式中,通常包含抽象策略接口、具体策略类和环境类这三个核心部分。综上所述,增加工厂类是在普通策略模式基础上的一种优化,它让策略模式的实现更加灵活、可维护和可扩展。

2025-02-10 13:45:06 333

原创 GIT创建子模块(submodule)

在 Codeup(一个代码托管平台,类似于 GitHub、GitLab 等)中创建子模块(submodule),通常是在使用 Git 进行版本控制的项目里操作。子模块允许你在一个 Git 仓库中包含另一个 Git 仓库。

2025-02-07 17:18:52 634

原创 【未完成】springboot项目实现扫码登录相关逻辑

扫码登录相关实现

2025-01-23 15:31:46 361

原创 Netty来创建一个TCP服务器,分包上传语音文件的处理

使用Netty创建一个TCP服务器,并实现分包接收语音文件

2025-01-23 09:59:04 995

原创 在 pom.xml 文件中指定 repositories

它将代替所有的仓库,这意味着 Maven 会优先使用该镜像地址,而不是直接访问任何仓库(包括 pom.xml 中指定的仓库),除非该仓库的 id 与 mirrorOf 中排除的仓库 id 相匹配。这样,你可以根据实际情况,在 pom.xml 中指定项目所需的仓库,同时利用 settings.xml 进行全局的镜像和仓库配置,灵活管理构件的获取来源。settings.xml 中的镜像可能会覆盖 pom.xml 或其他仓库的访问,具体取决于 mirrorOf 的设置。直接影响项目的构建过程。

2025-01-15 14:18:32 829

原创 音频文件wav格式转opus格式

文章主要介绍如何使用jave实现音频文件格式转换,如wav转为opus

2025-01-15 13:37:43 850

原创 springboot项目jar包启动的问题

springboot jar包启动问题

2025-01-09 11:16:02 305

原创 【验证中】APP扫码登录的两种方案

APP扫码登录流程

2025-01-08 10:28:50 1066

原创 【更新中】Mysql问题分析

当CONCAT与LIKE操作符结合,且在LIKE表达式中两端都带有通配符(如LIKE CONCAT(‘%’, column_name, ‘%’))时,通常无法有效利用索引。例如,有一个表users,其中有一个name列并建立了索引,查询SELECT * FROM users WHERE name LIKE CONCAT(‘J’, ‘%’)(这里CONCAT用于构建一个以 ‘J’ 开头的模式),数据库可能会利用索引来定位以 ‘J’ 开头的记录范围,而不是进行全表扫描。

2025-01-06 15:08:06 304

原创 netty解码器LengthFieldBasedFrameDecoder用法详解

LengthFieldBasedFrameDecoder 是一个非常灵活的解码器,可以处理各种带有长度字段的帧结构。通过调整lengthFieldOffset, lengthFieldLength, lengthAdjustment 和initialBytesToStrip 参数,可以适应不同的帧结构。

2025-01-06 10:17:23 1262

原创 【能用】springboot集成netty,解码器处理数据过长的问题

一旦 ByteBuf 中的数据足够完整解析,就会成功解析出 CustomMessage 并添加到 out 列表中,传递给后续的 YourBusinessLogicHandler 进行处理。这样,通过检查数据的完整性并利用 Netty 的数据累积特性,就可以实现当数据过长时等待全部数据到达后再进行解码操作。你可以根据具体的协议和需求调整 CustomDataDecoder 中的长度检查逻辑,确保对不同长度的数据都能正确处理。

2025-01-03 17:23:35 508

原创 【更新中】springboot集成netty中遇到的问题总结

如果无需再次尝试解码,可以在抛错时调用, in.resetReaderIndex();

2025-01-03 16:05:04 327

原创 【能用的方案】springBoot集成netty中如何使用@Value(通过依赖注入(DI)来访问)配置文件中的属性值

Override// 将解码器和编码器添加到pipeline中//解码器//编码器// 构造函数、getter和setter方法@Override'}';

2025-01-03 10:54:36 435

原创 SpringBoot 使用 @Value 注解来注入配置属性

在Spring框架中,@Value注解通常用于将配置文件中的属性值注入到Spring管理的bean的属性中。然而,@Value注解不能直接用于注入静态变量,因为静态变量属于类级别,而不是实例级别,而Spring的依赖注入是基于实例的。

2025-01-03 09:36:39 287

原创 【更新中】SpringBoot集成netty,在handler中调用@Component注解的类

首先,你需要确保你的Netty服务器是在Spring的上下文中启动的。在Netty中处理请求时,调用一个由Spring Boot管理的@Component注解的类,需要确保Spring上下文能够正确地注入这些组件。这种方法减少了在每个Handler中注入Spring组件的样板代码,但牺牲了类型安全性(因为getBean方法在编译时不会检查类型)。确保在Netty的管道(pipeline)中注册你的处理器时,这个处理器实例是从Spring上下文中获取的。

2025-01-02 17:00:34 380

原创 【更新中】springboot集成netty中可以用到的工具类

【代码】【逐步添加中】springboot集成netty中可以用到的工具类。

2025-01-02 15:38:44 320

原创 springBoot集成netty中登录鉴权、在pieline消息传递

/ 构造函数、getter和setter方法@Override'}';

2025-01-02 14:48:04 783

原创 Spring Boot集成Netty创建一个TCP服务器,接收16进制数据(自定义解码器和编码器)

springboot集成netty创建TCP服务器,接收16进制数据。文中添加了自定义解码器和编码器。

2024-12-30 16:43:01 1242

原创 【可靠能用】springboot集成netty,在不同端口实现tcp、websocket服务器

Netty可以同时创建TCP服务器和WebSocket服务器。Netty是一个高性能、异步事件驱动的网络应用程序框架,它提供了对TCP、UDP和多种协议的支持,包括WebSocket。这意味着你可以在同一个Netty应用程序中同时实现TCP和WebSocket通信。

2024-12-26 14:03:02 1172

原创 Spring Boot简单集成fastDFS

FastDFS是一个开源的轻量级分布式文件系统,它解决了大容量存储和负载均衡的问题。FastDFS架构包括Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载,Tracker server负责负载均衡和调度,最终由Storage server完成文件上传和下载。

2024-12-26 10:51:42 610

原创 【可靠有效】springboot使用netty搭建TCP服务器

在Spring框架中,集成netty创建TCP服务器并管理

2024-12-26 09:47:48 1590

原创 springboot 中添加TCP连接服务端

创建一个单独的Spring Bean来管理TCP服务器的生命周期。这样做的好处是将TCP服务器的逻辑与Spring Boot应用的启动逻辑分离,使得代码更加模块化和可维护。

2024-12-25 16:29:44 1031

mongodb可视化工具(兼容较低版本使用)

mongodb的可视化工具,该版本适合于较低的mongodb版本使用,目前已验证MongoDB 2.6.11 Community可用。

2025-01-23

能用Spring Boot集成Netty创建一个TCP服务器,接收16进制数据(自定义解码器和编码器)

Spring Boot集成Netty创建一个TCP服务器,接收16进制数据(自定义解码器和编码器)。

2024-12-30

可靠有效springboot使用netty搭建TCP服务器

【可靠有效】springboot使用netty搭建TCP服务器

2024-12-27

空空如也

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

TA关注的人

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