<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>架构迁移 on PlumePHP</title><link>https://plumephp.com/tags/%E6%9E%B6%E6%9E%84%E8%BF%81%E7%A7%BB/</link><description>Recent content in 架构迁移 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Mon, 02 Nov 2026 20:30:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/%E6%9E%B6%E6%9E%84%E8%BF%81%E7%A7%BB/index.xml" rel="self" type="application/rss+xml"/><item><title>《互联网产品的客户端架构·规模化与架构演进》12.3 迁移的退出条件与回滚</title><link>https://plumephp.com/inet-client-evolve-12-3-exit-criteria/</link><pubDate>Mon, 02 Nov 2026 20:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-12-3-exit-criteria/</guid><description>迁移的终点不是新路径上线，而是旧路径被安全删除。本节给出流量、错误、数据一致与观察期四类退出判据，把回滚资产检查、宣布结束、宽限期与旧路径删除写成状态机函数，并说明每条判据的边界与反例：指标刚好达标算不算过，回滚资产存在但过期算不算就绪，以及删除后无法回滚的代价。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》12.2 双写双读与兼容窗口</title><link>https://plumephp.com/inet-client-evolve-12-2-dual-write/</link><pubDate>Mon, 02 Nov 2026 19:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-12-2-dual-write/</guid><description>双写不是把同一份数据写两遍就结束，真正决定成败的是写入顺序、次写失败后的降级、双读比对口径，以及兼容窗口何时关闭。本节把顺序、差异率、窗口状态与到期决策写成纯函数，用可复现的样本回答两个问题：数据到底差多少，旧路径什么时候可以删，以及删除之前还需要哪些证据。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》12.1 绞杀者与渐进式替换</title><link>https://plumephp.com/inet-client-evolve-12-1-strangler/</link><pubDate>Mon, 02 Nov 2026 15:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-12-1-strangler/</guid><description>绞杀者替换的关键不是一次删掉旧代码，而是让新旧路径同时存在，并按用户、端与功能分桶逐步放量。本节把路由比例、白名单与 holdback、确定性哈希、接管进度和回退写成可测试的纯函数，让每一次请求都能解释自己为什么走新路径或旧路径，也说明如何判断迁移是否真正完成。</description></item></channel></rss>