自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(221)
  • 资源 (9)
  • 收藏
  • 关注

原创 Vue vs React:前端框架的差异与选择

Vue和React是现代前端开发中最流行的两大JavaScript框架,它们都用于构建动态、交互式的用户界面。尽管两者在目标上有很多相似之处,但在设计理念、语法、生态系统和使用场景上存在显著差异。本文将从多个方面对比Vue和React,帮助开发者理解它们的异同。

2025-08-24 19:31:30 699 2

原创 优化 SQL 查询:选出每个分组最大值的行并插入 10W 条测试数据

在数据库操作中,经常需要从一个表中选出每个分组(例如按字段a分组)中某字段(例如b)最大值的行。本文以一个实际案例为基础,展示如何设计一个表,插入 10W 条测试数据,并比较多种 SQL 查询写法来实现“选出每个a值对应的最大b值的所有行”。我们将分析每种写法的优缺点,并提供完整的实践步骤,适用于现代数据库(如 PostgreSQL、MySQL 8.0+、SQL Server 等)。

2025-08-14 13:00:09 871

原创 Spring、Spring MVC、Spring Boot与Spring Cloud的扩展点全面梳理

Spring生态的扩展点覆盖了从核心容器(Spring)、Web层(Spring MVC)、应用启动(Spring Boot)到微服务架构(Spring Cloud)的各个方面。Spring提供Bean生命周期管理,Spring MVC专注Web请求处理,Spring Boot简化配置和启动,Spring Cloud(结合Nacos)则增强了分布式系统的能力。开发者应根据需求选择合适的扩展点,注意性能和代码清晰度,以构建高效、可维护的应用。建议使用Spring Boot的自动配置减少手动配置。

2025-08-13 20:28:38 1098

原创 OpenFeign 服务调用原理与源码分析

OpenFeign 是 Java 生态中一种声明式的服务调用框架,广泛用于微服务架构中,特别是在 Spring Cloud 生态中。它通过注解定义服务接口,屏蔽了底层的 HTTP 请求细节,让开发者能够像调用本地方法一样调用远程服务。以下是对 OpenFeign 服务调用原理的详细分析,以及核心源码的解读。OpenFeign 的核心目标是提供声明式的 REST 客户端,通过动态代理和注解解析,简化 HTTP 请求的发送和响应处理。,这是 Feign 的入口类,用于配置和生成代理对象。

2025-08-13 17:16:40 1573

原创 任务调度系统设计与实现:Quartz、XXL-JOB 和 Apache Airflow 对比与实践

任务调度系统用于在特定时间或固定间隔触发任务执行,常见场景包括金融系统的批量对账、电商平台的库存同步、数据管道的 ETL(提取、转换、加载)等。定时调度:支持灵活的时间规则(如 Cron 表达式)触发任务。高可用性:支持集群部署,确保节点故障时任务不中断。任务分片:支持分布式任务分片,提升处理大规模数据的效率。可观测性:提供任务执行状态监控、日志记录和告警机制。扩展性:支持动态扩展节点和任务,以及多语言支持。

2025-08-12 10:59:27 1047

原创 基于 gRPC 的接口设计、性能优化与生产实践

gRPC 凭借 HTTP/2 和 Protobuf 的优势,在性能和开发效率上表现出色,但其复杂性要求开发者在接口设计和性能优化上投入更多精力。接口合并与流式通信:通过合并细粒度接口和使用流式 RPC,显著降低网络开销。负载均衡与高可用:结合 Kubernetes DNS 和 gRPC 的内置负载均衡策略,确保请求分发的高效性和可靠性。监控与可观测性:通过拦截器、Prometheus 和 OpenTelemetry 构建全面的监控体系,快速定位问题。注意事项学习曲线。

2025-08-12 09:57:15 802

原创 生产环境下的JVM性能优化:从监控到代码优化再到参数调优

当监控和代码优化无法完全解决问题时,才考虑调整JVM参数或GC策略。JVM调优的目标是平衡吞吐量低延迟和内存使用率。优先级:监控 > 代码优化 > JVM调优。工具驱动:熟练使用jstatjmapArthas等工具,快速定位问题。代码为本:从源头优化,减少不必要的对象创建和资源浪费。谨慎调优:JVM参数调整需基于数据,小步验证,避免副作用。持续监控:建立完善的监控体系(如Prometheus + Grafana),预防性能问题。

2025-08-11 20:22:15 883

原创 ClickHouse列式数据库的使用场景与基本优化手段

与传统行式数据库(如 MySQL、PostgreSQL)不同,列式数据库按列存储数据,每列的数据连续存储在磁盘上。这种存储方式特别适合需要对大量数据进行聚合、过滤和分析的场景。高压缩率:列式存储允许对相似数据进行高效压缩,减少存储空间。快速查询:列式存储减少了无关数据的读取,适合聚合查询。分布式支持:ClickHouse 支持分布式架构,能够处理大规模数据。实时性:支持快速数据插入和近实时查询。

2025-08-11 19:01:17 607

原创 Apache RocketMQ:消息可靠性、顺序性与幂等处理的全面实践

Apache RocketMQ 由阿里巴巴开源,现为 Apache 顶级项目,支持发布/订阅和点对点消息模型,提供普通消息、定时消息、事务消息等多种类型。NameServer:管理 Broker 元数据,提供服务发现和路由。Broker:负责消息存储、转发和持久化。Producer:消息生产者,发送消息到 Broker。Consumer:消息消费者,从 Broker 订阅消息。RocketMQ 的高性能和灵活性使其成为企业级应用的理想选择,尤其在需要保证消息可靠性、顺序性和幂等性的场景中。

2025-08-11 17:44:12 1135

原创 Redis为什么用跳表实现有序集合

相较于原始有序链表需要 6 次,我们的跳表通过建立多级索引,我们只需两次就直接定位到了目标元素,其查寻的复杂度被直接优化为O(log n)。

2025-08-11 10:43:39 803

原创 微服务架构中过滤器(Filter)与拦截器(Interceptor)的区别

过滤器(Filter)基于 Servlet/Jakarta EE 规范,运行于 Web 容器(如 Tomcat、Jetty),位于 HTTP 请求进入 Servlet 前和响应返回客户端后。在微服务中,常用于网关层(如 Spring Cloud Gateway 或 Zuul)处理全局性、非业务逻辑,如日志记录、跨域处理(CORS)、统一认证等。示例:网关层记录所有请求的 IP 和路径,或验证 API Key。拦截器(Interceptor)

2025-08-10 16:44:08 1097

原创 MySQL自增ID与UUID的区别及其在索引分裂中的表现与优化

是MySQL InnoDB使用B+树索引时,因插入新记录导致节点(页面)满载而触发的结构调整。是两种常见的选择,分别适用于不同场景。然而,它们的生成机制和插入模式对数据库索引(尤其是B+树索引)的影响差异显著,特别是会导致不同程度的。本文将深入分析自增ID与UUID的区别、优缺点,以及索引分裂的机制、影响和优化策略,帮助开发者根据业务需求做出合理选择。在MySQL数据库设计中,选择合适的主键或唯一标识符对性能和扩展性至关重要。

2025-08-10 12:05:59 583

原创 MySQL 查询性能优化与索引失效问题全解析

MySQL 查询优化和索引失效问题需从查询语句、索引设计、表结构和配置多方面入手。核心目标是减少扫描行数、提升索引利用率、优化执行计划。通过EXPLAIN分析、合理索引设计和定期维护,可显著提升性能。

2025-08-05 21:45:09 809

原创 java线程同步工具:`synchronized`、`ReentrantLock`与其他并发工具的对比与应用

和适合简单同步场景,代码简洁,依赖JVM优化。提供高级功能(如中断、超时、公平锁),适合复杂场景。其他并发工具线程池()适合任务管理和并行计算。并发集合(等)优化高并发数据结构操作。高级锁和同步器(Semaphore等)提供灵活的同步控制。原子类(等)适合高效无锁操作。和解决特定场景需求。开发者应根据场景需求选择工具:简单同步用,复杂场景用或并发包工具,高并发数据操作用并发集合,任务管理用线程池。

2025-08-05 19:24:23 513

原创 深入解析 ThreadPoolExecutor 配置:原理与实践优化

线程池是一种线程管理机制,通过维护一组可复用的线程来执行任务,避免频繁创建和销毁线程的开销。线程池的核心思想是将任务与线程解耦,任务提交后由线程池分配线程执行,从而提高资源利用率和并发处理能力。的核心在于通过线程复用和任务队列管理实现高效并发。理解其工作原理(任务提交、线程分配、队列处理、拒绝策略)是合理配置的基础。配置时需根据任务类型、系统资源和业务需求权衡参数,结合压测和监控动态优化。合理的线程池配置能显著提升程序性能和稳定性。

2025-08-05 18:44:14 988

原创 深入剖析 RocketMQ 分布式事务:原理、流程与实践

RocketMQ 的分布式事务消息通过两阶段提交和事务状态检查机制,有效解决了分布式系统中本地事务与消息发送的原子性问题。其核心在于半消息的不可见性和 Broker 的事务状态检查,确保消息的可靠投递和最终一致性。事务消息适用于电商、金融、微服务等场景,能够简化分布式事务的开发复杂度,同时提供高性能和高可用性。关键点使用半消息和 Op 消息实现事务的原子性。通过定期检查未确定状态的半消息,确保事务的最终一致性。适合需要异步处理和最终一致性的分布式系统。

2025-07-30 22:17:30 688

原创 RocketMQ 核心特性解析及与 Kafka区别

Apache RocketMQ 以其高性能、低延迟和事务消息支持,成为业务驱动场景的优选消息中间件,特别适合电商、金融等需要复杂逻辑和实时性的系统。Kafka 凭借高吞吐量和流式处理能力,适合日志流和大数据处理场景。KRaft 模式的引入使 Kafka 架构更简洁,但与 RocketMQ 的 NameServer 相比,KRaft 在资源占用和逻辑复杂度上并非更轻量。选择建议如果需要事务消息、低延迟和多 Topic 场景的稳定性能,选择 RocketMQ。

2025-07-30 17:26:27 605

原创 JavaScript 闭包(Closure)介绍

在JavaScript中,闭包是指一个函数(或函数表达式)连同其词法环境(Lexical Environment)的组合。这个词法环境包含了函数创建时所能访问的所有外部变量。简单来说,闭包让内部函数可以“记住”并访问外部函数的作用域,即使外部函数已经返回。

2025-07-30 15:16:15 875

原创 Apache Kafka核心组件详解

Apache Kafka 的核心组件——Broker、Topic、Partition、Producer、Consumer、Consumer Group、Zookeeper(传统模式)、KRaft(新模式)、Offset、Replication 和 Controller——共同构成了一个高效、可靠的分布式消息系统。KRaft 模式的引入标志着 Kafka 架构的重大升级,通过移除 Zookeeper 依赖,简化了部署和运维,同时显著提升了性能和扩展性。

2025-07-30 12:07:13 1108

原创 Kafka 重复消费与 API 幂等消费解决方案

通过事务性偏移量管理,Kafka 结合生产者事务(acks=-1)和消费者配置(),实现消息从生产到消费的精确一次语义。事务性偏移量提交将消息写入、业务处理和偏移量更新绑定在一个原子事务中,确保不重复、不丢失。结合业务层去重、偏移量管理和消费者组优化,可进一步提升系统可靠性。Broker 端通过事务协调器和内部主题()支持事务性机制,确保高一致性场景下的可靠投递和消费。

2025-07-30 11:11:53 1095

原创 Vue2 vs Vue3:核心差异与升级亮点

Vue3 在响应式、性能、TypeScript 和开发体验上全面升级,Composition API 和新特性使其更适合现代开发。Vue2 适合维护旧项目或需兼容 IE 的场景。特性Vue2Vue3响应式ProxyAPI性能一般提升 1.5-2 倍TypeScript较弱原生支持新特性无生态兼容性IE9+现代浏览器。

2025-07-29 21:17:08 1114

原创 Mysql索引为何使用B+树结构

MySQL的索引机制中,有一点可谓是路人皆知,既默认使用B+树作为底层的数据结构,有人会说树结构是以二分法查找数据,所以会在很大程度上提升检索性能,这点确实没错,但树结构有那么多,但为什么要选择B+树呢?而不选择二叉树、红黑树或B树呢?下面一起聊一聊这个话题。

2025-07-29 17:47:00 292

原创 处理订单过期但支付成功的系统设计:平衡用户体验与业务规则

通过结合自动恢复订单、退款和人工干预三种策略,系统能够在订单过期但支付成功的场景下,兼顾用户体验和业务规则。预防措施(如支付前校验、库存延迟释放)和用户沟通(如透明通知、补偿机制)进一步提升方案的鲁棒性。实际实现时,需根据业务场景(如电商、票务)调整策略优先级,并通过监控和日志系统确保异常可追溯。

2025-07-29 11:15:43 1429

原创 Elasticsearch 深度分页问题与 `search_after` 解决方案

【代码】Elasticsearch 深度分页问题与 `search_after` 解决方案。

2025-07-29 10:29:35 988

原创 Kafka 顺序消费实现与优化策略

Kafka 实现顺序消费的核心是利用。

2025-07-28 22:42:21 908 1

原创 Kubernetes 核心组件解析

Kubernetes 由控制平面(API Server、etcd、调度器、控制器管理器)和节点组件(Kubelet、Kube-proxy、容器运行时)组成,配合附加组件(如 DNS、监控工具)实现容器编排和管理。每个组件各司其职,共同维护集群的高可用性、扩展性和自动化。

2025-07-27 17:25:32 432

原创 OpenResty 高并发揭秘:架构优势与 Linux 优化实践

OpenResty 能够支持高并发(如数十万甚至百万并发连接)的核心原因在于 Nginx 的架构优势、LuaJIT 的高效执行,以及 OpenResty 的灵活扩展能力。以下是详细分析,结合你的前述问题(Linux 系统配置、Go 的高并发能力),解释 OpenResty 为何能支持高并发,并探讨在 Linux 系统上运行高并发 OpenResty 所需的额外配置。OpenResty 继承了 Nginx 的高性能架构,并通过 LuaJIT 和模块化设计进一步增强了并发能力。

2025-07-27 16:09:50 1144

原创 优化Linux高并发:文件描述符与端口范围的协同调优

可以让进程处理更多连接,但如果端口范围不足,主动发起的连接仍会受限。这两个参数看似都与高并发有关,但它们的作用和影响范围不同。在高并发场景下,文件描述符和端口范围分别限制了不同的资源瓶颈。(最大文件描述符数量)来支持高并发,为什么还需要调整。限制了所有这些资源的使用,而。仅限制主动连接的源端口分配。要弄清楚为什么需要同时调整。

2025-07-27 13:51:48 973

原创 分布式系统中Token续期问题解决方案

时,主要目标是确保用户在Token过期后能够无缝继续使用服务,而无需频繁重新登录,从而提升用户体验并兼顾安全性。在现代前后端分离项目中,

2025-07-27 13:03:51 1146

原创 Redis 单线程模型与多线程机制

Redis 的单线程模型是其核心设计,通过事件驱动、非阻塞 I/O 和内存操作实现了高性能、低复杂度的内存数据库,适合高并发、低延迟场景。单线程模型的优势在于简单性和高效性,但需注意避免阻塞操作并结合集群扩展性能。从 Redis 6.0 开始,多线程 I/O 优化了网络处理,显著提升了高并发场景的吞吐量,但核心命令执行仍由单线程负责,保留了原子性和一致性。开发者应根据场景选择是否启用多线程 I/O,并合理配置以平衡性能和复杂性。

2025-07-24 16:40:32 630

原创 深入浅出 IO 多路复用:用 Java NIO 打造高性能网络应用

IO 多路复用是一种机制,允许一个线程同时监控多个文件描述符(在 Java 中为Channel),检查哪些通道可以执行 IO 操作(如读、写)。它通过事件驱动的方式,只在通道就绪时通知程序处理,避免了传统阻塞 IO 的资源浪费和非阻塞 IO 的忙轮询。在 Java 中,IO 多路复用主要通过 NIO 的Selector实现,底层依赖操作系统的多路复用机制(如 Linux 的 epoll、Windows 的 IOCP)。:跨平台,适合小规模连接。epoll(Linux):高性能,适合大规模并发。

2025-07-24 16:21:51 1056

转载 “软件系统三高问题”高并发、高性能、高可用系统设计经验

业务层、系统级、服务布、数据库库/表、动静离、同步拆成异步、单线程解成多线程、原数据缓存离、流等等。。。。直观的表述就是:从前端用的CDN、动静分离,到后台服务拆分成微服务、分布式、、缓存、池化、多线程、IO、分库表、搜索引擎等等。都是强调一个“分”字。接下来,我们重点来介绍这 三高。

2025-07-22 14:09:20 105

原创 记一次千万级数据量爬取疑难问题及解决方案

业务需要获取1千万DOI对应的PDF文档,存在则下载,不存在则标识。

2025-07-20 12:48:11 261

原创 基于SpringBoot3集成Kafka集群

在resource/config下面新增kafka-log.yml,配置主题与消费者组。在某次集群宕机后,我们发现日志无法查询,经排查,是因为最初配置了。导致从头开始重新消费,幸好ES做了幂等性处理。加载自定义yml文件。

2025-07-13 18:05:58 631

原创 SpringCloud常用组件介绍

Spring Cloud 是一个基于 Spring Boot 的微服务框架,集成了众多组件来解决分布式系统中的常见问题。

2025-07-03 20:11:27 490

原创 记一次Ubuntu22安装MongoDB8并同步本地数据过程

根据官方文档一顿操作即可。

2025-07-01 20:13:28 296

原创 记一次生产Redis集群宕机恢复过程

89 90两台机器同时挂掉,重启后发现Redis集群无法正常恢复,查看日志发现是内存溢出了。

2025-06-27 22:51:50 234

原创 airflow系列之任务远程触发调用

我们希望通过消息队列或者API方式触发调用Airflow任务。

2025-06-24 18:58:52 263

原创 基于n8n快速开发股票舆情监控对话系统

关注公众号 算法小生,回复 股票分析 即可。

2025-06-15 21:06:13 377

原创 基于n8n指定网页自动抓取解析入库工作流实战

第一节点用于 接收聊天输入第二个节点用于判断是否为链接:我们可以直接拖动chatInput到蓝色字体处,然后选择正则表达式匹配url。

2025-06-08 20:27:21 775

Socket实现两台计算机间的简单通信

此代码实现了服务器端与客户端不同电脑间的网络通信,基于TCP协议,服务器端启动后,客户端搜索进行连接,连接成功后,进行通信。里面我根据自己的理解进行相应的注释,在启动客户端的方法中,将ip地址更改为本机ip地址即可成功运行,适合初学网络编程同学。

2016-11-05

JAVA实现文件拷贝进度条同步显示

文件拷贝的同时,进度条同步显示拷贝进度。只需要修改源文件地址与目标文件地址即可

2016-11-02

基于MVC图片水印的具体应用

项目效果请访问: www.xuefeng66.cn/car,下载后直接可以部署应用,里面根据自己理解详细描述。

2017-04-24

简易计算器

简易计算器,能够显示所有的输入,最后进行结果计算

2016-11-02

绿色PDF转换器

AnyBizSoft PDF Converter是一个专业的PDF转换器,支持将PDF文件转换为Word (DOC/DOCX)、PowerPoint (PPT/PPTX)、Excel (XLS/XLSX)、EPUB、HTML、TXT等格式。

2016-11-08

空空如也

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

TA关注的人

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