归档
我归档的所有文章。
-
时序数据库 InfluxDB 深挖 · 数据模型、TSM 存储引擎与降采样保留
InfluxDB 深挖:时序数据的写多读窗、追加不改特征,Line Protocol 与 measurement/tag/field 数据模型、series cardinality 陷阱,TSM 存储引擎(WAL+Cache+TSM+Compaction)与 TSI 索引,保留策略与降采样,1.x→2.x→3.x(IOx 列存)演进,落到广告系统指标监控的选型与踩坑。
-
IDFA 之后的归因:MMP、SKAdNetwork 与 Postback 结算
移动归因怎么把一次安装追到具体的渠道、广告和创意——MMP 的角色、SDK 采集了什么、Postback 怎么实时回流、IDFA 之后 SKAdNetwork 如何补位,以及为什么你需要一个 SSOT 单一数据源来结算。以 AppsFlyer 为例。
-
冷启动:程序化栈每一层都在解同一个问题
从新广告、缺特征模型、拉起中的 serverless 到未回的 SKAN postback,AdTech 每层都在解同一问题——信息不全时就要决策。本篇把冷启动四副面孔(广告、模型、系统、归因)收进同一框架:先验从哪来、怎么熬过空窗期、怎么判断结束。
-
IAB TCF 与 GPP 深挖:每个 AdTech 工程师都绕不开的『同意』协议
Updated:工程师视角的 IAB TCF v2.2/v2.3 与 GPP 实战笔记:CMP 在页面上做什么、一条 TC String 里装了什么、它怎么经 OpenRTB 传递、bidder 收到后必须做什么,以及 GPP 如何把 TCF 包进全球合规信封。
-
推荐全链路离线评估:单看召回 HitRate 或排序 AUC 都会骗你
推荐系统系列(收官):用「书店帮你找书」的比喻讲透全链路离线评估——为什么单看召回 HitRate 或排序 AUC 都会骗你、四个指标(只有 NDCG 能区分命中排第几)、三组对照怎么定位瓶颈在召回还是排序,以及永远以全链路指标做上线决策。
-
过滤与重排:推荐链路最不性感、却最影响体感的最后一道闸门
推荐系统系列(漏斗最后一段):算法论文几乎不讲、生产却有 30% 迭代在此。讲透过滤与重排——硬规则用 if-else、软偏好交给模型,过滤七大类别与必过/可降级链,重排为何是「精排的对手」,以及多样性 MMR/DPP、打散与强插的「度」。
-
PM2 进程管理:Node.js 应用守护、配置文件与批量调度
从零讲透 PM2:进程守护与自动重启、常用命令速查、命令行 vs 配置文件两种用法、ecosystem 启动参数详解,以及资讯类 Node 应用部署与批量调度 Python 脚本两个实战场景。
-
地区广告政策与合规:GDPR、中国广告法与平台审核差异
创意再好,不合规就是下架 + 罚款。本文梳理四大辖区的监管框架(GDPR / DSA、CCPA/CPRA、中国广告法 / 个保法)、同意与个性化的边界、平台审核差异,并给出一份可落地的『发布门禁』合规检查清单。
-
推荐排序精排:账本只记了「喜欢」,最反直觉的坑是负样本得自己造
推荐系统系列(漏斗第二段·精排):用「录像带店老板打分」比喻讲透排序——召回看「召没召回」、排序看「排第几」,最反直觉的坑「负样本得自己造」、防穿越铁律、LightGBM 先打概率再排队、AUC vs GAUC 与 SSB 铁律。
-
多路召回融合 RRF:只看排名不看分数,一招破解「各路分数没法比」
推荐系统系列(召回·最后一棒):用「录像带店领班」比喻讲透多路召回融合——各路分数为何没法直接相加、RRF 怎么用「只看排名」破解量纲难题、rrf_k=60 为何让「被多路召回」压过「单路第一」、加权 RRF 与 SSB 铁律。
-
创意 A/B 测试与有效性度量:从假设到增量
前面几篇反复说『用数据校准』——这一篇讲怎么校准。从提出可证伪的假设、随机分流、样本量与显著性,到代理指标(CTR/CVR)与结果指标(ROAS/品牌 Lift)的取舍,再到判定创意真实价值的金标准——增量实验(holdout/Ghost Ads/Conversion Lift)。把整个创意系列收口在可验证的方法论上。
-
双塔召回:为什么它是过去 10 年工业界召回的绝对主力
推荐系统系列(召回·主力路):用「资深选片员画气质画像」的比喻讲透双塔 / DSSM / 向量召回——为什么非得是两座塔(离线建库 + 在线 ANN)、训练最反直觉的坑「负样本得自己造」,以及为什么它是过去十年工业界召回的绝对主力。
-
DCO 动态创意优化与创意疲劳:模板、要素与频控
一条创意打天下的时代过去了。DCO(动态创意优化)把素材拆成可替换的『要素』,用受众/情境/历史信号在投放时实时拼装,做到千人千面。本文讲 DCO 的解剖结构(模板×要素库×决策×渲染)、个性化的维度、创意疲劳的衰减曲线与频控/刷新策略,以及规模化个性化里的合规与三方边界。
-
热门召回:推荐系统最便宜也最不可替代的兜底保险栓
推荐系统系列(召回·兜底路):用「本周热租榜」的比喻讲透热门召回——兜底 / 冷启动 / 保险栓三个替不了的角色、马太效应等四个工程坑、时间衰减与流式实时热门等升级款,以及为什么它单跑指标平平(Coverage 仅 22%)却是任何个性化召回都给不了的保险栓。
-
协同过滤 ItemCF:25 年不过时的召回骨架,从余弦相似度到 Swing / EASE / 双塔
推荐系统系列(召回·第一路):用「录像带出租店」的比喻讲透协同过滤——UserCF vs ItemCF 工业界为何选后者、余弦相似度怎么过滤人气噪声、老挑片员三步打分与归一化,以及为什么说双塔本质就是加了深度编码器的协同过滤。
-
推荐系统召回总览:漏斗定位、8 大召回家族、Recall@K / Coverage 与 SSB 铁律
推荐系统系列开篇:用「录像带店选片」的比喻建立召回直觉——召回在漏斗里的位置、只管「不漏」不管「选对」的本质、Recall@K / Coverage / Latency 三大 KPI、8 大召回家族,以及最隐蔽的大坑 SSB(召回一改,排序必重训)。
-
广告视觉构图与动态创意:构图法则、视线引导与视频钩子
配色管『色』、文案管『字』,构图管『第一眼看哪、视线怎么走』。本文讲三分法/视觉重心/留白等构图法则、用尺寸-位置-方向三把手引导视线,以及信息流视频前 3 秒的钩子节奏与静音适配——把静态与动态创意的视觉骨架讲清楚,并落到广告主/媒体/用户三方的平衡上。
-
广告文案与排版:信息层级、阅读动线与可读性
文字是广告里承载信息最重的元素。本文讲视觉层级怎么建、F/Z 阅读动线怎么用(基于 NN/g 眼动研究)、AIDA 文案结构怎么写,以及字号 / 行距 / 行宽 / 对齐这些可读性细节——让用户在 2 秒里读到该读的、点到该点的。
-
广告创意配色:色彩心理、配色方案、CTA 对比与可访问性
配色不是审美玄学,是可拆解的工程。本文讲色彩的心理联想(及其文化局限)、四种经典配色方案、60-30-10 比例法则,并落到最工程化的一环——CTA 对比度与 WCAG 2.2 可访问性,让转化按钮既好看又『被看见、被点得动』。
-
广告的用户心理学与行为哲学:从认知偏差到伦理边界
广告本质是一场三方博弈中的说服。本文以 ELM 双路径说服模型、卡尼曼的双系统理论与前景理论为骨架,拆解六个最常被调用的认知偏差、注意力与记忆机制,最后落到『助推 vs 操纵』的伦理光谱——哪些是合理引导,哪些已越界。
-
你的视频素材为什么要 5 秒才开始播:程序化视频里的 MP4 faststart
Updated:MP4 默认把 moov 元数据写在文件末尾,播放器要下完整条素材才能解出第一帧;一行 -movflags +faststart 把它挪到文件头部,直接决定曝光是否可见、DSP 的 vCPM 结不结算,并涉及 ISO BMFF 布局与 MRC 可见性。
-
广告形式全解:主流形式、协议底层与可见性计费
Updated:拆解广告形式(Format):逐个讲 Banner/Interstitial/Rewarded/Native/Video/Splash 六种主流形式,深入 OpenRTB imp、SafeFrame/MRAID/VAST/OMID 渲染与 MRC 计费口径。
-
手把手走一遍定位式位图倒排:4 条创意的增删改查 + OSS 全量/增量下发
Updated:Bidder 竞价服务的定位式位图倒排索引,如何做全量与增量构建:每步都还原成 COW『造新快照、换引用』,再通过 OSS 下发(不可变 blob + manifest 指针布局),实现冷启动全量拉取与运行时增量拉取(版本差 + chunk delta)。
-
配置落地:从投放后台到索引快照(近线编译、触发机制与版本化快照)
Updated:广告主在投放后台维护的配置树,怎样被近线编译成一份 Bidder 能毫秒匹配的版本化只读快照?本篇专讲生成侧的编译流水线——编译前置、版本化、全量/增量、触发机制与组件边界(编译≠分发)。
-
程序化广告投放层级与定向配置:Campaign 层级模型、定向继承与缺省语义
Updated:程序化投放要维护一棵四层配置树:广告主 → 推广计划 → 广告组/订单项 → 创意。讲清各层职责、配置项如何归层、定向如何跨层合并(继承+逐维求交、排除累加)与最贵的缺省语义。
-
Pacing 目标曲线:时段消耗权重怎么设计
Pacing 用 PID 跟住目标消耗曲线 r(t),但曲线本身怎么画?本篇讲透时段消耗权重 w(τ) 的设计:对齐流量/可得/价值量、离线构造管线(聚合→加权→平滑→混合回拉→归一化)、按日型与时区建模、预测与控制如何分工。
-
Bidder 预算 Pacing:PID 控制与消耗平滑
把竞价预算 Pacing 讲透:不仅不超投,还要在投放时段内平滑消耗——目标消耗曲线(ASAP/均匀/流量加权)、节流 vs 出价系数两种手段、PID 闭环控制与抗积分饱和等调参陷阱。
-
Bidder 频次控制工程篇:多维度限频的存储选型与读写分离
频次控制工程篇:同一条频控规则落到代码,是一道高 QPS 读写分离题——写走回传→计数旁路异步、读在 bidder 关键路径带降级,多维度拆成一组拦截器,String/Hash/ZSet 三种 Redis 结构按精度选型,兼顾每小时 N 次与最小间隔。
-
Bidder 频次控制配置篇:五维配置与身份口径降级
频次控制配置篇:把 DSP 频控拆成层级 × 窗口 × 事件 × 抑制 × 身份五个维度,讲清多级 cap 为何取最严、硬 cap 与频次衰减如何取舍,以及最现实的难题——设备 ID 缺失或全 0 时怎样分级降级身份口径而不误伤无 ID 流量。
-
Bidder 定向过滤(Targeting Filter):竞价漏斗最前端的一票否决
Updated:竞价漏斗第二级——定向过滤如何以最低成本削减最多流量:先请求级 gating 一刀切整次曝光,再候选级布尔匹配逐条筛广告;讲透 AND/OR/NOT、正向 vs 排除与最贵的缺省语义、频次控制为何不能全放最前。
-
Bidder 解析层(Parse):把原始竞价请求变成内部可算对象
Updated:竞价漏斗第一级——解析(Parse)如何把原始竞价请求变成内部可算对象:协议解析与方言适配(OpenRTB 归一化、序列化为何优先 Protobuf)、尽早限时(tmax 减安全余量算出内部 deadline 并全链路透传)、连接与 gzip 传输优化。
-
Bidder 竞价服务架构设计:高并发 · 低延迟 · 强一致的在线决策系统
Updated:DSP 的核心竞价服务 Bidder 如何设计:从一次竞价请求的『~20ms 处理预算』出发,拆解解析→定向过滤→召回→打分→出价→排序→填充七级漏斗,讲透只读只算的数据面、先快后准的预算 Pacing 与延迟/效果/一致性铁三角。
-
OEM 系统广告(海外市场):手机厂商怎么靠预装、预加载与系统位变现
Updated:聚焦海外新兴市场,拆解手机厂商的两条变现线:把开屏/锁屏/负一屏/应用商店等系统位卖成广告,以及用动态预加载(Google PAI)/预装把装机位按 CPD/CPI 卖给买量方,讲清 Install Referrer+MMP 归因与 GDPR 合规。
-
零售媒体网络(RMN):零售商用第一方购买数据卖广告,与它为什么是搜索、社交之后的第三波
Updated:零售媒体网络(RMN)精讲:零售商用第一方购买数据+自有流量卖广告,成为搜索、社交之后的第三波。讲清三类库存(on-site/off-site/in-store)、护城河『闭环归因』、为何天然免疫 cookieless,及标准缺失/ROAS 虚高等争议。
-
广告 SDK 实战:APP 怎么接入、SDK 怎么实现、Mediation 怎么决策、谁在做 SDK
Updated:从开发者视角把广告 SDK 拆到能上手:App 如何接入(依赖/初始化/广告位/adapter/同意/测试)、SDK 内部实现(API 层/状态机/网络/渲染/缓存/上报),以及 Mediation 在瀑布与 In-App Bidding 间决策与厂商全景。
-
后 Cookie 身份层:UID2 / RampID 的确定性 ID、Privacy Sandbox 的设备端方案,与第一方数据的三条路
Updated:后 Cookie 身份层精讲:第三方 cookie / IDFA 退场后靠什么认人?拆开三条路线——基于登录的确定性 ID(UID2、RampID)、Google Privacy Sandbox 的设备端方案,及第一方数据+洁净室,讲清各自覆盖率/隐私/精度的权衡。
-
App 广告 SDK 深挖:变现、聚合与 In-App Bidding
Updated:App 广告 SDK 是移动端变现的扳机:端上发起请求、聚合多家广告源、缓存渲染素材、上报曝光点击。讲透广告生命周期、Mediation 瀑布 vs In-App Bidding,以及初始化延迟、预加载、内存、ANR、多 SDK 冲突等工程内核。
-
程序化策展(Curation / Marketplace 2.0):一个把「数据 + 库存」在卖方侧打包成 deal 的新中间层
Updated:程序化策展(Curation / Marketplace 2.0):SPO、cookieless、deal 化合流下的新中间层——在卖方侧把受众数据+库存打包成 curated Deal ID,讲清它与买方 DMP 定向的区别与「多一层抽成 / 透明度」的争议。
-
媒体 Ad Server 深挖:它如何拍板每一次曝光
Updated:媒体 Ad Server(Google Ad Manager)是卖方侧决定曝光归谁的调度总控。讲透 line item 优先级、曝光决策流水线、dynamic allocation 与统一竞价、Header Bidding 接入与高 QPS 决策工程内核。
-
拍卖机制与 Bid Shading:一次竞价的漏斗、底价、结算,与一价时代为什么要「主动少出一点」
Updated:程序化拍卖机制精讲:一次竞价从入围到结算的漏斗、hard/soft/动态底价、一价 vs 二价的结算差异,以及一价时代的核心工程 Bid Shading——winner's curse、用历史清算价估「恰好赢下」的价位,及 surplus×赢率的最优化。
-
Header Bidding 深挖:Prebid.js(客户端)vs Prebid Server(服务端)架构
Updated:Header Bidding 解决什么、一次客户端竞价的完整链路、为何把竞价搬到服务端(Prebid Server),以及 C2S 与 S2S 在 cookie 匹配率、延迟、成本、控制权上的取舍,并从工程角度拆这个高并发低延迟扇出服务怎么搭。
-
OpenRTB 协议精讲:bid request / response 对象模型、拍卖结算与 win / loss / billing notice
Updated:OpenRTB 协议精讲:bid request / response 对象模型、at 拍卖类型与结算价、adm 与 nurl 创意交付、win/billing/loss notice 与 ${AUCTION_PRICE} 成交价宏,以及 ext 扩展与版本演进。
-
广告出海地区分层:T1 / T2 / T3 市场分析与打法
T1/T2/T3 是广告出海最基础的地区分层坐标。这篇讲清分级依据、四项核心指标(eCPM/CPI/ARPU/流量规模)的此消彼长、代表国家地区,以及买量、变现、创意、风控的分层打法——为什么不能『一套素材打全球』。
-
RTA 精讲:竞价前实时 API 过滤——第一方数据不出域地影响出价
Updated:写给工程师的 RTA(Real-Time API)精讲:广告主如何用第一方数据实时影响 DSP 出价、却不必把数据交出去。讲透这个竞价前过滤模式、它在竞价生命周期里的位置、请求长什么样、100ms 延迟预算与 default-allow / deny 兜底、缓存 TTL 的容量与成本账,以及上线前要备齐什么。
-
供应链透明度(下):OpenRTB schain 用运行时逐跳记录做供应链核验
OpenRTB 的 SupplyChain 对象(schain):随每条 bid request 逐跳生长的有序 node 数组,记录库存实际经过的每一手;配合上篇三份声明逐跳交叉核验、支撑供应链优化(SPO)。含买方侧离线建索引到热路径核验的工程。
-
供应链透明度(上):ads.txt / app-ads.txt / sellers.json 把卖方授权变成可交叉核验的声明
程序化供应链透明度的三份静态声明:ads.txt/app-ads.txt 是媒体的授权卖方清单,sellers.json 是中介的卖方身份声明;靠对账键 (asi, sid) 交叉印证,挡住域名伪造与非法转售。运行时的 schain 与买方工程见下篇。
-
Last Look 深挖:顺序二价下的偷看反超,与一价统一竞价如何堵住它
Updated:程序化拍卖史上最著名的不公平:last look——处在「最后一棒」的交易所先偷看别人的竞胜价、再高一点反超。它靠什么成立,Header Bidding 如何把它推上风口,一价拍卖+统一竞价怎么堵住它,为何在垂直整合下从未真正消失。
-
程序化交易模式精讲:按定价与保量两轴拆开 RTB / PMP / PD / PG
Updated:写给工程师的程序化交易模式梳理:从「价格怎么定」和「量保不保」两轴出发,拆开 RTB 公开竞价、PMP 私有竞价、PD 优先交易、PDB / PG 程序化保量,并讲清 Deal ID 与媒体 Ad Server 的优先级分配。
-
程序化广告生态全景:DSP / SSP / ADX / Ad Server / DMP 在一次曝光里各管什么
Updated:写给工程师的程序化广告生态梳理:买方 Trading Desk / DSP、卖方 SSP / ADX、两端各自的 Ad Server 与横跨两边的 DMP。一次曝光如何在 100 毫秒里走完链路,每层在收什么钱、解决什么问题,这些缩写为何常被混着叫。
-
广告服务上云实战 · 容器化部署与调优
容器化与 K8s 部署系列收官:把广告竞价服务生产级送上云——JVM 容器化的 cgroup 感知与 MaxRAMPercentage、滚动更新与金丝雀、readiness+preStop 优雅停机、跨可用区反亲和与 PDB、HPA+spot 成本弹性。
-
CI/CD 流水线 · Jenkins 构建镜像与自动部署到 K8s
容器化与 K8s 部署系列第 4 篇:讲透 CI/CD——Jenkins 的 Controller+Agent 分布式构建、K8s 动态 Agent Pod、声明式 Jenkinsfile 与凭据管理,以及 push 式与 pull 式 GitOps。
-
K8s 调度、资源与弹性伸缩
深挖 Kubernetes 调度与弹性:requests/limits 与 QoS 三级、OOMKilled 与 CPU throttle、scheduler 的 Filter/Score 两阶段、HPA/VPA/CA 三层弹性与三种探针。
-
Kubernetes 核心对象 · Pod/Deployment/Service/Ingress
深挖 Kubernetes 核心对象:控制面与节点架构、Pod/ReplicaSet/Deployment、Service/Ingress、ConfigMap/Secret/Namespace,讲透声明式 YAML 与 reconcile 控制循环。
-
容器化(开篇)· Docker 原理与镜像分层
容器化与 K8s 部署系列开篇:从 Linux namespace/cgroup/UnionFS 拆透容器本质、镜像分层与写时复制、Dockerfile 多阶段构建瘦身、容器 vs 虚拟机、containerd/runc 运行时。
-
Dubbo 深挖 · 流量治理、Filter 链与优雅上下线
Dubbo 流量治理深挖:Filter/Filter 链秩序、动态配置与优先级、超时限流熔断、灰度与权重爬升、QoS 与优雅上下线清单,把发布窗口的超时尖刺压下去。
-
Dubbo 深挖 · 协议栈与 Triple / 序列化
Dubbo 协议与序列化深挖:经典 Dubbo 协议帧与 Netty 传输、Hessian2/Protobuf/Fastjson2 取舍、Triple(HTTP/2)为何成为互通默认、流式调用与 gRPC 互操作,以及热路径上的编解码性能坑。
-
Dubbo 深挖 · Cluster 容错、负载均衡与路由
Dubbo Cluster 层深挖:Directory / Router / LoadBalance / Cluster 四件套,Failover 与 Failfast 等容错策略,随机/轮询/最少活跃/一致性哈希,条件路由与标签路由,以及竞价写路径为何默认不能乱重试。
-
Dubbo 深挖 · 注册中心、服务发现与元数据
Dubbo 注册发现深挖:接口级与应用级服务发现、Nacos/ZooKeeper 取舍、推空保护与本地缓存、元数据/配置中心拆分,以及滚动发布时如何避免僵尸实例接流量。
-
Dubbo 深挖(开篇)· 架构全景、SPI 与一次调用全链路
Dubbo 深挖开篇:从广告竞价链路的 RPC 需求出发,讲透 Consumer/Provider/Registry 三角、分层架构与 URL 模型、SPI 扩展机制,以及一次远程调用从 Proxy 到 Transport 的完整路径。
-
API 网关与分布式追踪
收官微服务与 RPC 系列:拆 API 网关的鉴权/限流/路由职责,讲 OpenTelemetry 的 TraceId/SpanId 传播、Jaeger 与采样策略,以及网关透传 Trace 的排障要点。
-
服务网格 Service Mesh 深挖
深挖 Service Mesh:拆 Sidecar 数据面与控制面、Istio/Envoy 的流量治理与 mTLS、可观测下沉与真实代价,对照 SDK 模式取舍,落到网格重试与业务重试的职责边界。
-
服务注册与发现深挖
深挖服务注册与发现:对照客户端发现与服务端发现,拆 ZooKeeper/Nacos/etcd/Consul 的 AP/CP 与健康检查模型,讲清实例生命周期与优雅下线,落到滚动发布中的僵尸实例与摘除策略。
-
RPC 框架(开篇)· 原理与 gRPC/Thrift/Dubbo
微服务与 RPC 系列开篇:拆透一次远程调用的代理/序列化/协议/传输分层,对照 gRPC、Thrift、Dubbo 的协议栈与治理能力,讲清负载均衡与超时重试的正确姿势,落到广告竞价链路的重试与超时边界。
-
分布式 ID 深挖 · 雪花算法及其变体
深挖分布式 ID:全局唯一/趋势递增/高性能/高可用/信息安全五维需求,UUID 与 DB 自增的短板,雪花算法 64 位布局、时钟回拨处理与 workerId 分配,Leaf 号段双 buffer 与百度 UidGenerator。
-
分布式事务深挖 · 2PC、TCC、Saga 与 Outbox
深挖分布式事务:单机 ACID 到分布式为何失效、CAP/BASE 与最终一致,逐帧拆 2PC/3PC 的阻塞与单点、TCC 的空回滚悬挂、Saga 的编排与补偿、Outbox+CDC 可靠事件投递,落到广告计费扣预算的幂等补偿与对账。
-
分布式锁深挖 · Redis Redlock vs ZooKeeper/etcd
深挖分布式锁:从互斥/防死锁/容错/可重入四条正确性出发,拆 Redis SET NX + Lua 释放 + 看门狗续期、Redlock 与 fencing token 质疑、ZooKeeper 顺序节点、etcd lease+CAS 及 CP/AP 取舍。
-
ZooKeeper 与 etcd 深挖 · ZAB、Raft、Watch 与租约
深挖两大协调服务:ZooKeeper 的 znode 模型、会话与临时节点、一次性 Watch 与 ZAB 协议,etcd 的 Raft、MVCC/revision、lease 租约与可回放 Watch,并对比 ZAB 与 Raft 的选主与配置用法。
-
Criteo CTR 特征工程实战:把理论串成一条能跑的广告管线
「数据与特征工程」收官实战:用 Kaggle Criteo CTR 数据集把清洗、非线性变换、缩放、降维、特征选择串成完整管线,覆盖缺失与异常处理、log1p / 周期编码、RobustScaler 选型与过滤→嵌入的选特征顺序。
-
分布式共识(开篇)· Paxos 与 Raft 图解
深挖分布式共识:从复制状态机与 FLP 不可能讲起,图解 quorum 多数派、Paxos 为何难懂、Raft 的选举/日志复制/安全性三块、脑裂与奇数节点,落到 etcd/KRaft 工程实践与选主安全边界。
-
广告多维报表与漏斗分析实战
广告多维报表实战:CUBE/物化视图与预聚合路径、漏斗与留存窗口设计、Bitmap 精确去重 vs HLL 近似、报表 API 加速与缓存,以及 UV 口径与接口性能优化。
-
特征编码:把文字菜谱翻译成秤上的克数
「数据与特征工程」编码篇:类别特征必须编码成数字。讲清 One-Hot / Label / Count / Frequency / Target 五种编码的场景与坑、按基数选编码的决策图,以及 Target Encoding 的数据泄漏与 K 折交叉解法。
-
特征选择:只留好料——过滤、包装、嵌入三大流派
「数据与特征工程系列」第 6 篇:特征选择的两条原则(高类别相关、低特征间冗余)与三大流派——过滤法(方差/皮尔逊/VIF/互信息/MIC/卡方)、包装法(前向/后向/RFE)、嵌入法(L1/L2 正则、树模型重要性)。
-
特征提取与降维:吊高汤——把一大堆料浓缩成精华
「数据与特征工程系列」第 5 篇:特征提取(造新维度)和特征选择(挑原维度)的区别,稀疏表示与特征哈希(adtech 高基数救星),以及 PCA / ICA / LDA 三种降维法各自在最大化什么——无监督最大方差、有监督最大可分、解混最大独立。
-
实时数仓 · 分层设计与 Lambda/Kappa 架构
实时数仓分层:ODS/DWD/DWS/ADS 各层职责、Lambda 与 Kappa 的取舍、流批一体如何落地,以及 Flink + Kafka + OLAP 的端到端实时仓,落到速度层与批层口径统一。
-
OLAP(开篇)· 列式存储原理与 ClickHouse/Doris
OLAP 开篇:行存 vs 列存为何在宽表聚合上差出数量级、字典/RLE/压缩与向量化执行、MPP 分布式查询心智,再对比 ClickHouse 与 Doris 的架构与选型,落到广告明细查询的性能路径。
-
MySQL 内核 · 主从复制与高可用
MySQL 内核收官:binlog 复制链路、异步与半同步、并行复制与主从延迟、MHA/MGR 与读写分离,落到写后读一致性与配置投放正确性。
-
特征构建:切配、换角度、片下部位——把原始料做出新味道
「数据与特征工程系列」第 4 篇:特征构建的三条路——特征组合(GBDT+LR 叶子编码、特征搜索、CTR 交叉特征内积)、映射到新空间(FFT / 小波 / 数据熵)、衍生变量(泰坦尼克号 Name/Cabin/Ticket 拆解)。附多重共线性的坑与规避。
-
数据预处理:洗菜择菜的三步——观察、清洗、整理
「数据与特征工程系列」第 3 篇:把原始数据变成干净规整数据集的三步——数据观察(系统地找问题)、数据清洗(异常值检测:箱线图 / 切比雪夫 / 孤立森林,缺失值四种补法)、数据整理(标准化 / 归一化 / 鲁棒缩放)。
-
MySQL 内核 · 执行计划与慢查询优化
MySQL 内核第四篇:EXPLAIN 读法、优化器如何选索引、索引失效与 JOIN 算法、深分页优化与慢查询治理,落到报表慢查询与配置库性能边界。
-
特征工程系统化框架:能用哪些料、料从哪进、料坏了怎么报警
「数据与特征工程系列」第 2 篇:用「后厨的三张清单」拆解一套工业级特征体系——特征使用方案(选哪些料 + 可用性评估)、特征获取方案(离线/在线分层获取)、特征监控方案(时效性/覆盖率/异常值 + 有效性分析 + 降级闭环),全程用美团点击下单率预估做实例。
-
MySQL 内核 · redo log、undo log 与 binlog
MySQL 内核第三篇:redo WAL、undo 与 binlog 的职责边界、内部两阶段提交与 crash-safe、刷盘参数与 binlog 格式,落到计费库双 1 与主从一致性取舍。
-
MySQL 内核 · 事务隔离、MVCC 与锁
MySQL 内核第二篇:四种隔离级别、InnoDB MVCC/ReadView/undo 版本链、记录锁/间隙锁/next-key 与幻读,落到预算扣减的死锁与幻读避坑。
-
特征工程总览:算法是大厨,但菜的上限由「备料」决定
「数据与特征工程系列」开篇:用「后厨备料」的比喻建立整体心智模型——为什么「数据和特征决定机器学习的上限,算法只是逼近这个上限」,特征工程到底在干哪四件事(清洗 / 构建 / 转换 / 选择提取),以及它在离线训练与在线服务两条链路里的不同形态。
-
MySQL 内核(开篇)· InnoDB 存储结构与 B+ 树索引
MySQL 内核开篇:InnoDB 页/区/段与 Buffer Pool、B+ 树聚簇与二级索引、回表与覆盖索引、联合索引最左前缀,落到广告配置库的索引设计要点。
-
Flink 深挖 · 部署模式与 Flink on K8s
Flink 生产部署收尾:Session / Per-Job / Application 三种模式怎么选、为何生产选 Application、Flink on Kubernetes 的 Native 与 Operator 两条路线、JobManager 高可用与 checkpoint 存储、资源与内存模型、stop-with-savepoint 优雅升级。
-
Flink 深挖 · 反压定位与性能调优
Flink 反压:credit-based 网络流控、Web UI 与 busyTime 定位反压起点、数据倾斜的两阶段聚合与加盐打散、AsyncFunction 异步维表 join,及并行度/RocksDB/unaligned checkpoint 调优。
-
Flink 深挖 · 状态管理与 Checkpoint 容错
Flink 有状态计算与容错:Keyed/Operator State 原语、HashMap/RocksDB 后端、Chandy-Lamport Checkpoint barrier 快照、aligned/unaligned 取舍与 Savepoint。
-
Flink 深挖 · DataStream API:ProcessFunction、状态、Timer 与 Side Output
从 Flink SQL 下沉到 DataStream API:什么时候必须用底层 API、DataStream 心智与 SQL 对照、KeyedProcessFunction 的状态/TimerService/OutputTag 三大件,并用累计告警、支付超时、迟到分流、接 Kafka 聚合四个可跑实战串起来。
-
Flink 深挖 · 端到端 Exactly-Once 与两阶段提交
深挖 Flink 端到端 Exactly-Once:厘清 at-most/at-least/exactly-once 含义、内部靠 checkpoint 一致性快照实现、端到端为何需要可重放 source 与事务 sink,及 Kafka 事务两阶段提交。
-
Flink 深挖 · 时间语义、窗口与 Watermark
Flink 时间语义与乱序:processing/ingestion/event time 取舍、Watermark 与多输入取 min、Tumbling/Sliding/Session 窗口、allowedLateness 与侧输出兜底、增量/全量聚合。
-
Flink 深挖(开篇)· 流处理模型与运行时架构
Flink 深挖开篇:为何广告实时链路选 Flink 而非微批、DataStream 流处理心智、JobManager/TaskManager/Slot 运行时、StreamGraph→JobGraph→ExecutionGraph 转换与算子链、部署模式。
-
Apache Flume:从 Source·Channel·Sink 到广告日志不丢链路与选型
Apache Flume 讲透:Agent 的 Source/Channel/Sink 三段式与 at-least-once、Memory/File/Kafka Channel 取舍、TailDir→Kafka 配置,广告不丢链路与真实 DSP 案例脱敏拆解。
-
为什么 AdTech 偏爱 Kafka:广告事件中枢的五大典型场景与架构设计
广告的曝光/点击/转化是高吞吐、需重放、被多方消费的事件洪流,正是 Kafka 的主场。本篇讲透 AdTech 五大场景——采集削峰、计费对账、实时特征、预算反作弊、入湖入仓——与 Netty+Kafka+Redis+Flink 的分工。
-
Kafka 可靠性与 Exactly-Once 深挖:acks、ISR、min.insync.replicas 与事务,把『不丢不重』讲到底
计费对账的底线是绝不丢、不算重。本篇讲透 Kafka 可靠性:不丢是 acks × 副本复制 × 消费提交的三方合约,深挖 acks 取舍、min.insync.replicas、unclean 选举、幂等生产者与事务,讲清 Exactly-Once 的边界。
-
Kafka 性能内核:磁盘系统凭什么跑出内存级吞吐
Kafka 用最普通的磁盘却能跑出百万级吞吐,甚至快过内存系统。本篇逐一拆开性能内核四板斧:顺序写、页缓存(内存交给 OS 而非 JVM 堆)、零拷贝 sendfile、日志分段与稀疏索引,再叠加批量与压缩,最后讲清冷读、SSL、段过多等变慢场景与调优取舍。
-
Kafka Consumer 深挖:poll 循环、offset 提交与 rebalance,怎么做到不丢不重不卡顿
生产者篇讲了消息怎么写进去,这篇补齐另一半:怎么可靠高效地读出来。拆 poll 单线程循环与心跳、offset 提交四姿势与不丢不重时机、三个 poll 生死参数、分区分配 assignor、rebalance 生命周期与 Consumer Lag 诊断。
-
Kafka Producer 深挖:分区策略与 Sticky Partitioner 是怎么把延迟砍半的
一条消息进哪个分区,直接决定 Kafka 的吞吐、延迟与顺序性。本篇从发送攒批讲起,拆四种分区策略,讲透 Sticky Partitioner 为何把无 key 的 p99 延迟砍半,再谈 key 路由、扩分区陷阱、顺序性与热点隔离。
-
Kafka 核心原理精讲:从一条日志到分布式流平台,把关键机制与取舍讲透
Kafka 原理精讲:以『分布式提交日志』为主线,讲透 Partition、Offset、ISR、HW、分区容量决策、pull 模型取舍、交付语义与 dumb-broker 设计哲学,附 KRaft + Java 上手 demo、反模式清单与 7 张原理图。
-
Redis 布隆过滤器实现:位图、RedisBloom 与缓存穿透防线
深挖 Redis 布隆过滤器:位数组 + k 哈希为何只有假阳性没有假阴性、误判率与 m/k 参数怎么算、原生 bitmap 手写 vs RedisBloom 模块 vs Redisson,再到计数/布谷鸟/可扩展变体与删除难题,落到广告竞价挡穿透与去重。
-
缓存一致性深挖:双删、Binlog 订阅与多级失效
深挖缓存一致性:为何缓存层做不到强一致、Cache-Aside 两种写顺序的竞态、延迟双删的窗口与局限、Binlog/CDC 订阅驱动失效,以及多级缓存 L1/L2 失效联动的四种方案对比与选型,落到广告竞价预算/元数据一致性落地。
-
Redis 深挖(三)· 线程模型与性能
深挖 Redis 线程模型与性能:单线程执行为何天然原子、IO 多线程与 bio 后台线程各干什么、pipeline 收敛 RTT、8 种内存淘汰与惰性+定期过期、慢命令与 UNLINK、热 key 定位打散,落到竞价场景的生产红线。
-
Redis 深挖(二)· 持久化与高可用
深挖 Redis 持久化与高可用:RDB 的 fork+COW、AOF 三档 appendfsync 与重写、混合持久化,再到主从复制、Sentinel 故障转移、Cluster 槽分片与 MOVED/ASK,落到竞价场景的 Redis HA 实践。
-
Redis 深挖(一)· 数据结构与内存模型
深挖 Redis 数据结构:从 redisObject 对象头到 String/Hash/Set/ZSet 的底层编码(listpack/skiplist 等)与转换阈值,讲清编码为何只升不降、内存开销与碎片,以及 bigkey 的编码级成因与结构选型。
-
本地缓存深挖:Caffeine、W-TinyLFU 与堆外缓存
深挖本地缓存:Caffeine 的 W-TinyLFU 为何命中率高于 LRU、过期与刷新四件套、weak/soft 引用的坑、maximumSize 与命中率调优,以及堆内与堆外的 GC 取舍,落到广告竞价 L1 缓存实战。
-
缓存机制:命中率、更新策略与穿透击穿雪崩
从命中率与缓存分层讲起,覆盖本地/分布式缓存、更新策略、热 Key/大 Key,以及穿透、击穿、雪崩的成因与解法(含布隆过滤器、singleflight、多级缓存代码),落到广告竞价链路的多级缓存实战。
-
Netty 深挖 · 背压、水位线与百万连接调优
Netty 性能收尾:写缓冲背压的根源、高低水位线与 isWritable 用法、EventLoop 不阻塞与业务线程池、SO_BACKLOG/TCP_NODELAY/池化等参数调优,以及百万连接的内存/fd/堆外约束。
-
Netty 深挖 · Pipeline、编解码与粘包拆包
深挖 Netty 的 ChannelPipeline 事件传播与协议编解码:inbound/outbound 双向触发顺序、TCP 粘包拆包的本质与四种切帧方案、LengthFieldBasedFrameDecoder 四参数怎么算。
-
Netty 深挖 · ByteBuf、引用计数与零拷贝内存模型
Netty 内存模型:ByteBuf 三段式指针免 flip()、PooledByteBufAllocator 借鉴 jemalloc、引用计数 retain/release 与堆外泄漏,及 CompositeByteBuf/FileRegion 零拷贝。
-
Netty 深挖(开篇)· Reactor 模型与 EventLoop 线程模型
Netty 系列开篇:从竞价 Server 为何弃用原生 NIO/BIO 讲起,深挖 Reactor 三级演进、主从多 Reactor 架构、Channel/EventLoop/Pipeline 组件,及 EventLoop 绑定单线程、串行无锁的线程模型。
-
并发协作与异步编排:闭锁、信号量与 CompletableFuture
并发协作与异步编排:CountDownLatch / CyclicBarrier / Semaphore 各自的场景、CompletableFuture 的任务编排与线程池隔离、超时兜底与异常处理,落到竞价并行拉取多路依赖的聚合。
-
并发容器:ConcurrentHashMap 与阻塞队列
并发容器怎么选:ConcurrentHashMap 从 JDK7 分段锁到 JDK8 CAS+synchronized+红黑树的演进、CopyOnWrite 的适用与代价、BlockingQueue 家族对比,以及为什么别再用 synchronizedMap。
-
线程池原理与调优:ThreadPoolExecutor 七参数、执行流程与拒绝策略
高并发服务的吞吐命脉:ThreadPoolExecutor 七参数与执行流程、四种拒绝策略、队列与线程数怎么算,配合监控、动态调参与 ThreadLocal 泄漏排查,落到竞价链路的线程池隔离实践。
-
AQS 与 Lock 家族:ReentrantLock、读写锁与 Condition
AQS 深挖:state + CLH 变体等待队列的模板方法,独占 / 共享两种模式,串起 ReentrantLock、读写锁、Condition 与 CAS,并对比 synchronized 的取舍。
-
synchronized 与锁升级:对象头、Monitor 与偏向 / 轻量 / 重量级锁
synchronized 到底怎么工作:对象头与 Monitor 结构、偏向锁→轻量级→重量级的锁升级路径与触发条件,配合逃逸分析的锁消除、锁粗化,讲清何时够用、何时该换更细粒度的方案。
-
JMM 与可见性:volatile、happens-before 与重排序
并发正确性的地基:从可见性、有序性、原子性三大问题出发,拆 JMM 抽象模型、重排序与内存屏障、happens-before 规则,讲透 volatile 语义与适用边界,并剖析 double-check 单例等经典坑。
-
Grafana JVM 监控分析:从指标采集到看板解读的实战指南
JVM 深入系列实战续篇:用 Micrometer/JMX Exporter、Prometheus、Grafana、Alertmanager 搭建监控链路,讲清指标暴露与抓取、4701 看板的 Heap/老年代/GC 停顿/分配速率解读与告警水位。
-
JDK 版本差异精讲:从 8 到 25,LTS 演进与关键能力
以 LTS 为主线梳理 JDK 8→11→17→21→25:PermGen/Metaspace、G1 默认与 CMS 移除、模块化、Records/Sealed/模式匹配、虚拟线程与 pinning、Scoped Values,附运行时变迁与生产选型。
-
JVM 深入(三)· 进阶篇:JIT、内存模型与调优前沿
JVM 三篇系列进阶篇:讲透 JIT 即时编译(热点探测、方法内联、逃逸分析与标量替换、分层编译、去优化与 OSR),补上 JMM(happens-before/volatile/重排)、堆外内存与 OOM,给出调优四步法与 GraalVM/Loom 等前沿。
-
JVM 深入(二)· 核心篇:垃圾回收全解 —— 从可达性分析到 ZGC
JVM 三篇系列核心篇专讲垃圾回收:可达性分析与四种引用、Safepoint/OopMap 枚举 GC Roots、三种基础算法与分代收集、三色标记与漏标、G1 与 ZGC 的染色指针+读屏障,附取舍三角与选型。
-
JVM 深入(一)· 入门篇:内存架构与类加载 —— 从字节码到对象的一生
JVM 三篇系列入门篇:把 JVM 当成一台『口袋电脑』,讲清内存分区(堆 / 栈 / 方法区 / 元空间 / 程序计数器)、字节码与操作数栈、new 对象的诞生全过程、类加载五步与双亲委派,为后两篇 GC 与 JIT 打好地基。
-
JMeter 压测实战:组件模型、线程组、CLI 执行与 HTML 报告
性能测试动手篇,把 Apache JMeter 讲透:九大组件分层作用、线程组三旋钮与 QPS 换算、从零搭 HTTP 压测计划、CSV 数据驱动、非 GUI 命令行执行与 HTML 报告解读,以及分布式施压。
-
性能测试:指标、负载模型、结果解读与容量规划
高性能系列收束:从 RT/QPS/并发指标与容量推算讲起,讲清开放 vs 闭合负载模型、尾延迟百分位与 Coordinated Omission、饱和点与容量规划,附 wrk/JMeter/Gatling/k6 可跑脚本。
-
批处理与请求合并:攒批、削频与吞吐优化
把多次小操作合并成一次大操作,用延迟换吞吐。讲透客户端攒批、Singleflight 请求合并、批量读写、组提交与异步刷盘的模式、参数(大小/超时/背压)与延迟-吞吐取舍。
-
连接与 I/O 模型:线程、池化、多路复用与背压
连接和线程常在 CPU 成为瓶颈前先耗尽。讲清 BIO vs NIO/Reactor 多路复用、Netty EventLoop 与阻塞卸载、连接池核心参数与 Little's Law 池大小直觉、池耗尽背压策略。
-
异步与削峰:用消息队列把洪峰挡在核心路径外
同步链路在峰值流量下极易被打垮。本篇讲清削峰 vs 解耦、MQ 缓冲与令牌桶入口结合的削峰模式、消费侧背压(Consumer Lag / DLQ / pause-resume)、异步后的一致性权衡与幂等消费,以及哪些场景不该异步。
-
Nginx 配置实践:结构、反向代理、限流与生产清单
围绕 nginx.conf 结构讲清全局块、events、http/server/location,覆盖反向代理、负载均衡、HTTPS、限流与动静分离,附生产检查清单。
-
CDN:就近访问、回源、缓存策略与防盗链
讲清 CDN 就近访问、预热回源、GSLB 调度、Cache-Control 策略与防盗链,附生产清单与反模式。
-
数据库性能与扩展:索引、读写分离与分库分表
数据层往往是高性能的最后瓶颈。讲清索引与执行计划优化、读写分离、垂直/水平拆分与分库分表(分片键、散列路由、全局 ID、跨分片查询、扩容迁移),以及分布式事务与一致性代价。
-
数据冷热分离:边界划分、迁移与查询路由
从订单表容量测算讲清冷热边界决策、迁移安全、存储选型与查询路由,含冷热路由 / Canal / xxl-job / ClickHouse 代码。
-
负载均衡:四层与七层、算法选型与生产实践
高性能系列开篇:讲透服务端/客户端与四层/七层负载均衡、常见算法选型,配齐 Nginx upstream、一致性哈希、客户端 LB 与健康检查代码。
-
数据中心选型:全球枢纽、云区域与广告流量部署
从全球网络枢纽、云区域与广告流量分布出发,给出新加坡 + 弗吉尼亚双活选型,并覆盖延迟→竞价 tmax 预算、跨区成本模型、数据驻留合规与故障切换等生产实践。
-
混沌工程:故障注入、稳态假设与演练常态化
所有高可用手段都需要被验证。讲清混沌工程的五原则(稳态假设、最小爆炸半径)、四类故障注入与演练闭环、稳态如何用业务指标定义,以及从灰度到生产受控再到自动化平台的常态化路径,把'假设能恢复'变成'已经验证能恢复'。
-
发布与变更安全:灰度、蓝绿、金丝雀与回滚
变更是线上故障第一大根因。本篇梳理爆炸半径分类、滚动/灰度/蓝绿/金丝雀四种发布策略对比、Feature Flag 开关降级、config-only 与制品回滚双轨、数据库 expand-contract 模式、回滚条件清单。
-
幂等与一致性:重试安全、分布式事务与最终一致
重试、异步与多副本都要求操作幂等、数据一致。讲清幂等的实现(幂等键/去重表/状态机)、分布式事务(2PC/TCC/Saga/本地消息表 outbox)与最终一致的取舍。
-
依赖韧性:超时重试、熔断降级与舱壁隔离
把远程依赖防护讲成一条防线:超时预算与幂等重试、熔断三态与降级预案、Failover 与舱壁隔离,以及限流→超时→熔断→隔离→降级的叠加顺序。
-
服务限流:窗口、漏桶、令牌桶与分布式落地
限流保护系统不被瞬时流量打垮。讲透固定/滑动窗口、漏桶、令牌桶的取舍,以及单机与分布式落地、分层限流、选型决策与反模式。
-
冗余与容灾:HA 集群、同城异地灾备与多活选型
冗余是高可用的基本手段:服务多副本与数据多备份,配合自动故障转移。讲清 RTO/RPO、HA 集群、同城/异地灾备与多活的差异,异地多活的流量路由与写冲突解决,以及故障转移陷阱与选型。
-
高可用系统设计:从几个 9 到限流、依赖韧性与发布安全
高可用系列开篇:以「几个 9」量化可用性,梳理不可用根因,系统过一遍代码质量、集群冗余、限流、依赖韧性、发布安全、可观测性与混沌演练等手段,并给出中等规模系统的落地优先级排序。