前言 事情的起因是这样的:上周我在项目里用 git rebase 整理分支,结果把同事的提交“消失”了,虽然最后通过数据恢复救了回来,但整个过程大家都吓出一身冷汗。这次惊险的事故,让我不得不沉下心去深究 rebase 和 merge 的底层差异,以及它们在不同协作场景下的正确用法——毕竟“知其然更知其所以然”,才能避免 […]
前言 事情的起因是这样的:上周我在项目里用 git rebase 整理分支,结果把同事的提交“消失”了,虽然最后通过数据恢复救了回来,但整个过程大家都吓出一身冷汗。这次惊险的事故,让我不得不沉下心去深究 rebase 和 merge 的底层差异,以及它们在不同协作场景下的正确用法——毕竟“知其然更知其所以然”,才能避免 […]
Kafka 抛弃 Zookeeper(引入 KRaft 模式)是为了解决长期依赖 Zookeeper 带来的性能瓶颈、架构复杂度、可扩展性限制等核心问题。这一变革并非否定 Zookeeper 的价值,而是 Kafka 作为高吞吐消息系统,在规模和性能需求爆发式增长后,对自身架构的一次“去耦合”与“性能重构”。 一、Zo […]
在高性能场景(如高并发读写、复杂查询、大数据量存储、多维度数据处理等)中,PostgreSQL 常被优先推荐,核心原因在于其更优的并发控制、更强的查询优化能力、更灵活的扩展性、更丰富的高性能特性——这些优势恰好匹配高性能场景对“吞吐量、低延迟、稳定性、功能灵活性”的核心需求。以下从 6 个关键维度,结合 Postgre […]
开篇:那次因 QPS 统计不准差点背锅的经历 三年前做电商秒杀项目时,运维同学紧急反馈“网关 QPS 已经到 8000 了,赶紧扩容”,但我查看应用监控却显示“接口 QPS 才 3000”——两边数据相差一倍多。最后排查发现,网关统计时误将“健康检查请求”纳入其中,导致数据虚高,白白扩容了 3 台服务器。 作为拥有十年 […]
前几天在做代码Review的时候,同事指出了一个让我震惊的问题:我们项目中满天飞的 @Autowired 注解,居然不是Spring官方推荐的最佳实践!更让人意外的是,Spring官方文档悄悄地在多个地方暗示开发者应该优先使用 @Resource而不是@Autowired。 这个发现让我深挖了Spring依赖注入的底层 […]
在Consul中启用透明代理(Transparent Proxy)后,访问外部资源出现偶发Connection reset,本质是Consul的流量拦截逻辑、代理转发规则与外部资源访问需求不匹配,导致部分请求在转发链路中被异常终止。结合Consul透明代理的工作机制,具体原因可从以下维度深度分析: 一、核心背景:Con […]
要理解 NLB(网络层负载均衡,L4)与 ALB(应用层负载均衡,L7)结合 的场景和优缺点,首先需要明确两者的核心定位差异——NLB 聚焦于 L4(TCP/UDP 协议层) 的高性能流量分发,ALB 聚焦于 L7(HTTP/HTTPS 应用层) 的精细化路由与业务功能,二者结合本质是 “L4 高性能打底 + L7 业 […]
连接不可信的Wi-Fi(如无密码的公共热点、名称模糊的“免费Wi-Fi”等)存在多重安全风险,本质是这类网络缺乏可靠的身份验证、数据加密和安全管控,导致设备、数据甚至个人信息暴露在攻击者的可控范围内。具体风险可从以下6个核心维度展开: 一、数据传输“裸奔”:密码、隐私直接泄露 正常的可信Wi-Fi(如家庭Wi-Fi、企 […]
1. 引言 在 SpringBoot 的演进历程中,3.0 版本带来了一项颠覆性变更——取消了长期作为自动配置与扩展机制核心的 spring.factories 文件。这一调整对习惯旧版本开发的工程师而言,意味着需要重新理解新机制并完成迁移。本文将从 spring.factories 的核心作用切入,深入剖析取消它的原 […]
1. 前端防抖与按钮禁用(辅助手段) 原理:通过JavaScript限制用户频繁点击,如提交后禁用按钮或添加防抖延迟。 优点:简单易实现,减少无效请求。 缺点:无法防止绕过浏览器的请求(如API工具直接调用)。 示例: let isSubmitting = false; function submitForm() { […]
在Linux系统中,可以通过创建swap文件的方式临时启用交换空间。下面是具体的操作步骤: 1. 创建swap文件 使用dd命令创建一个指定大小的swap文件(示例为2GB): sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 bs=1M表示每次读写1MB的数据块 c […]
先上代码: package com.example.demo; import java.util.ArrayList; import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Ex […]
问题 通过Terminal命令行执行maven命令报错: mvn clean [INFO] Scanning for projects... [INFO] Artifact com.example:example-bom:pom:1.2.2 is present in the local repository, but […]
背景 正常来说,修改版本号使用mvn versions:set -DnewVersion=1.2.3-SNAPSHOT命令即可,不过貌似本地环境有问题,使用命令一直失败,所以想着搞一个通用的、不依赖maven的脚本。 脚本 完整脚本如下: #!/bin/bash NEW_VERSION="1.2.3-SNAP […]
在 Redis 7.0+ 中,EXPIREAT 命令的功能得到了增强,使其更灵活和实用。以下是其增强选项的详解: EXPIREAT 基本功能 EXPIREAT 用于设置一个键的过期时间戳(以秒为单位)。例如: EXPIREAT key timestamp 这会将指定键的过期时间设置为给定的时间戳。 如果想设置毫秒级的时 […]
天若有情天亦老,人间正道是沧桑。
COPYRIGHT © 2026 lifengdi.com. ALL RIGHTS RESERVED.