2026/11/6

MQ 串讲

串讲思路:MQ是什么 → 分类选型 → RocketMQ架构 → 持久化 → 消息类型 → 常见问题 一、什么是 MQ MQ(Message Queue)是应用之间的异步通信中间件:生产者把消息投进队列,消费者从队列里取出来处理,双方不需要直接…

  • 中间件 后端
  • 2026/11/6
  • 6
  • 2025/9/26

    Redis 持久化:RDB 和 AOF 到底怎么配

    Redis 重启之后数据没了,是最让人心慌的事故之一。要么是没开持久化,要么是配了但没生效。这篇把 RDB 和 AOF 讲清楚。 RDB:快照 按条件触发生成整个数据集的二进制快照: save 900 1 # 900 秒内至少 1 个…

  • 中间件
  • 2025/9/26
  • 3
  • 2025/8/14

    后端单测怎么写:把外部依赖挡在边界外

    很多人写单测半途而废,不是因为不会写断言,而是因为测试一跑就要连数据库、发 HTTP、等定时任务,慢且不稳定。关键是把外部依赖挡在边界之外。 一、先测纯逻辑,别急着测全流程 把一个方法里「算」的部分和「取数…

  • 后端
  • 2025/8/14
  • 5
  • 2025/7/12

    用 Redis 做排行榜和延时队列:两个 zset 的经典用法

    有序集合(zset)是 Redis 里最有用的结构之一:每个元素带一个分数,按分数自动排序。排行榜和延时队列都是它的直接应用。 排行榜 # 加分 ZINCRBY rank:2025-07 1 user:1001 # 前 10 名(降序,带分数) ZREVRANG…

  • 中间件
  • 2025/7/12
  • 3
  • 2025/4/12

    MySQL 8 的窗口函数:分组取第 N 条的三种写法

    「每个分类取最新一条」是 SQL 里的经典难题。MySQL 8 之前只能靠自连接或者变量,写法别扭还有性能问题。有了窗口函数之后,这件事变得很自然。 数据准备 CREATE TABLE article ( id INT PRIMARY KEY, cat…

  • 数据库
  • 2025/4/12
  • 3
  • 2025/2/8

    Redis 内存满了怎么办:八种淘汰策略怎么选

    Redis 内存到上限之后的行为,由 maxmemory-policy 决定。选错了,轻则缓存命中率下降,重则数据丢失、请求变慢。 先看现状 redis-cli INFO memory | grep -E 'used_memory_human|maxmemory_human|maxmemory_policy…

  • 中间件
  • 2025/2/8
  • 3
  • 2024/12/21

    接口版本演进:如何安全地下线一个旧字段

    后端接口一旦有外部调用方,字段就不能说删就删。记录一套比较稳妥的演进流程,尤其适合有 App 客户端的场景——老版本 App 可能一年后还在被使用。 一、加字段容易,删字段难 新增字段对老客户端通常是安全的(只要…

  • 后端
  • 2024/12/21
  • 2
  • 2024/12/14

    误删数据之后:一次真实的恢复演练

    演练比事故便宜。这篇记录一次「假设有人执行了不带 WHERE 的 DELETE」的完整恢复过程,全程在测试库做。 场景设定 凌晨 2 点,有人执行: DELETE FROM orders; -- 忘了 WHERE 3 万条订单消失。备份是每天 3 点…

  • 数据库
  • 2024/12/14
  • 3
  • 2024/11/9

    消息积压了怎么办:从止损到根治

    凌晨被告警叫醒,队列积压几十万条。慌是没用的,按顺序处理。 第一步:确认是不是真积压 # RabbitMQ rabbitmqctl list_queues name messages messages_ready messages_unacknowledged # Kafka kafka-consumer-gro…

  • 中间件
  • 2024/11/9
  • 3
  • 2024/11/6

    配置管理:环境变量、配置中心与功能开关

    配置混乱的典型症状:改一个超时时间要重新打包;测试环境连到了生产数据库;某个开关只在一台机器上生效。把配置分层管理,能避开大部分这类事故。 一、按变化频率和敏感程度分层 类型 例子 放哪里 环境相…

  • 后端
  • 2024/11/6
  • 3
  • 2024/10/17

    不引入框架也能做最终一致:本地消息表

    「下单成功后发一条通知」这类需求,最容易写成:先写订单,再发消息。可这两步之间一旦进程崩了,订单成了、消息没了;反过来先发消息再写订单,又可能消息发出去了订单没成。分布式事务框架能解决,但对多数项目…

  • 后端
  • 2024/10/17
  • 3
  • 2024/9/12

    Session、JWT 与刷新令牌:登录态方案怎么选

    登录态看起来是个小功能,但一旦选错方案,后面做多端登录、强制下线、权限变更都会很别扭。把三种常见方案的取舍理清楚。 一、服务端 Session 服务端保存会话状态,浏览器只拿一个随机 session_id。 Cookie: sid=9…

  • 后端
  • 2024/9/12
  • 4