22k 20 分钟

# 引言 目标读者:中高级后端开发、微服务架构师、对缓存一致性有实际困扰的工程师。 核心价值:解决高并发场景下缓存与数据库不一致的根本问题,掌握 4 种经过实战验证的一致性策略,读完能根据业务场景选择合适的方案,避免线上数据不一致导致的业务损失。 阅读前提:具备 Redis 基础使用经验,了解 MySQL 事务机制,对分布式系统有基本概念。 # 业务痛点:为什么缓存一致性这么难? 在我们的电商交易平台(峰值 QPS 8 万)中,曾出现过这样的场景:用户修改收货地址后,订单确认页仍显示旧地址,导致商品送错地点,客服投诉量激增 30%。排查发现,这是典型的缓存一致性问题 ——...
46k 42 分钟

# API 速率限制的技术价值与实战挑战 在现代 Web 应用架构中,API 速率限制不仅是安全防护的第一道防线,更是系统稳定性的重要保障。Juice Shop 作为一个典型的企业级应用,其登录接口、敏感操作接口等都面临着暴力破解攻击的威胁。这种攻击不仅可能导致账户被盗,还会对系统性能造成严重影响。 # 技术挑战的多维度分析 从攻击者视角看,现代暴力破解已经从简单的字典攻击演变为智能化的多维度攻击: 分布式攻击:利用僵尸网络从不同 IP...
19k 17 分钟

# 引言 目标读者:正在开发高并发应用的后端工程师,特别是那些处理大量异步任务、定时任务、HTTP 请求的开发者。如果你在开发电商秒杀系统、消息处理平台、数据分析服务等,这篇文章就是为你写的。 核心价值:帮你建立完整的线程池调优思维,从 "随便配置" 转向 "科学调优"。读完本文,你将掌握:线程池参数的精确计算方法、拒绝策略的选择逻辑、监控告警的实战技巧、避免出现 "线程池满导致服务雪崩"...
6.3k 6 分钟

# 设计模式 —— 优化退款案例(策略模式 & 模板模式 & 工厂模式) # 一、背景 在电商 App 的订单模块中,随着业务发展出现了多种订单类型(普通订单、团购订单、组合订单、服务卡订单等),不同订单的退款逻辑差异较大。同时,用户维度(如 VIP 用户、普通用户)也会影响退款流程,例如 VIP 用户可享受垫付退款,普通用户则需等待 2 个工作日。 原有代码因多次迭代新增逻辑,导致大量 if-else 嵌套,代码混乱且难以维护。本次重构通过策略模式、模板模式和工厂模式整合用户与订单维度的复杂逻辑,实现代码解耦与扩展。 # 二、设计方案 # 1....
14k 13 分钟

# 苍穹外卖 day12 # 课程内容 工作台 Apache POI 导出运营数据 Excel 报表 功能实现:工作台、数据导出 工作台效果图: 数据导出效果图: 在数据统计页面点击数据导出:生成 Excel 报表 # 工作台 # 需求分析和设计 # 产品原型 工作台是系统运营的数据看板,并提供快捷操作入口,可以有效提高商家的工作效率。 工作台展示的数据: 今日数据 订单管理 菜品总览 套餐总览 订单信息 原型图: 名词解释: 营业额:已完成订单的总金额 有效订单:已完成订单的数量 订单完成率:有效订单数 / 总订单数 * 100% 平均客单价:营业额 /...
17k 15 分钟

# 苍穹外卖 day11 # 课程内容 Apache ECharts 营业额统计 用户统计 订单统计 销量排名 Top10 功能实现:数据统计 数据统计效果图: # Apache ECharts # 介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。 官网地址:https://echarts.apache.org/zh/index.html 常见效果展示: 1). 柱形图 2). 饼形图 3)....
18k 17 分钟

# 装饰器模式:动态扩展功能的艺术 # 一、业务痛点与技术背景 核心价值:解决日志系统中动态添加日志格式、缓存系统中灵活组合缓存策略等实际问题,掌握装饰器模式在中间件开发中的最佳实践,避免继承爆炸和功能耦合问题。 在我们开发的分布式缓存系统中,最初只有基础的缓存功能。随着业务发展,需要添加统计监控、数据压缩、加密、限流等多种增强功能。如果使用继承方式,将会产生 2^n 个组合类(n 个功能点),维护成本呈指数级增长。 更严重的是,在一次系统升级中,由于继承层次过深,一个看似无害的修改导致了连锁反应,使得缓存系统的性能下降了...
13k 12 分钟

# 苍穹外卖 day10 # 课程内容 Spring Task 订单状态定时处理 WebSocket 来单提醒 客户催单 功能实现:订单状态定时处理、来单提醒和客户催单 订单状态定时处理: 来单提醒: 客户催单: # Spring Task # 介绍 Spring Task 是 Spring 框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。 定位: 定时任务框架 作用: 定时自动执行某段 Java 代码 为什么要在 Java 程序中使用 Spring Task? 应用场景: 1). 信用卡每月还款提醒 2). 银行贷款每月还款提醒 3)....