中间件
共 17 篇 · 按时间倒序,可连读
11-10
proxy_cache 上线三天就串号:缓存键、Set-Cookie 与回源风暴
三行配置就让回源掉了九成,三天后有客户看到了别人的库存和会员价。缓存键里少了身份维度、上游还在发 Set-Cookie,修完又撞上热点 key 过期的回源尖峰。
11-09
limit_req 把正常用户挡在门外:漏桶、突发与真实 IP
限流上线第二天,投诉集中在两家客户。日志里被限的 IP 只有四个,全是我们自己的代理。从 set_real_ip_from、burst 的真实容量到按接口分档的完整配置。
11-08
Nginx 的 499 和 504 一起涨:一次超时预算的重排
一个导出接口同时制造了 499 和 504。客户端 30 秒、Nginx 60 秒、上游无限制,三层超时全错位,还叠加了重试放大。超时怎么分层、重试为何只对幂等请求开。
11-07
HTTPS 证书过期三天:certbot 自动续期为什么一直失败
续期定时任务每小时都在跑,证书还是过期了三天。根因是一条无条件的 return 301,把 ACME 校验请求也跳去了 HTTPS。webroot 放行、^~ 的优先级、reloa…
11-06
Nginx location 匹配优先级:一次 /admin 被别的服务抢走的复盘
登录成功后跳到 /admin,结果落进了隔壁业务的后台,另一些时候干脆「找不到网页」。查了一晚上才发现是三条规则叠在一起:最长前缀匹配、^~ 的截断、以及 location 补尾斜…
11-05
Kafka 消息不丢不重:生产端到消费端的完整配置
acks 与 min.insync.replicas 必须一起设,手动提交只是第一步。四个丢失点的逐段拆解,以及「恰好一次」真正依赖的业务幂等方案。
11-05
Redis 主从、哨兵、Cluster:三套高可用方案怎么选
三套方案的丢失窗口其实是同一个 —— 异步复制的延迟。故障转移过程、脑裂防护、16384 个槽的由来,以及按规模选型的判断标准。
11-05
分布式锁的五个版本:从 SETNX 到业务幂等
每一版都修掉上一版的漏洞,但最后一版才触及根本:锁只是优化,幂等才是正确性。附 Redlock 争议与 ZooKeeper 的适用边界。
07-19
redis 分布式锁
分布式应用进行逻辑处理时经常会遇到并发问题。
08-21
Redis 安装方式
体验 Redis 需要使⽤ Linux 或者 Mac 环境,如果是 Windows 可以 考虑使⽤虚拟机。主要⽅式有四种:
08-11
Redis-布隆过滤器
布隆过滤器可以理解为一个不怎么精确的 set 结构,当你使用它的 contains 方法判断某个对象是否存在时,它可能会误判。但是布隆过滤器也不是特别不精确,只要参数设置的合理,它…
07-15
Redis - 漏斗限流
漏斗限流是最常用的限流方法之一,顾名思义,这个算法的灵感源于漏斗(funnel)的结构。
07-12
Redis-实现简单限流
限流算法在分布式领域是一个经常被提起的话题,当系统的处理能力有限时,如何阻止计划外的请求继续对系统施压,这是一个需要重视的问题。
06-27
redis消息队列-延时队列
Redis 的消息队列不是专业的消息队列,它没有非常多的高级特性,没有 ack 保证,如果对消息的可靠性有着极致的追求,那么它就不适合使用。
06-06
Redis - HyperLogLog
我们常见的业务问题:如果你负责开发维护一个大型的网站,有一天老板找产品经理要网站每个网页每天的 UV 数据,然后让你来开发这个统计模块,你会如何实现?
05-18
Redis - 位图
在我们平时开发过程中,会有一些 bool 型数据需要存取,比如用户一年的签到记录,签了是 1,没签是 0,要记录 365 天。如果使用普通的 key/value,每个用户要记录 3…
03-09
Redis - GeoHash
Redis 在 3.2 版本以后增加了地理位置 GEO 模块,意味着我们可以使用 Redis 来实现摩拜单车「附近的 Mobike」、美团和饿了么「附近的餐馆」这样的功能了。