architecture 分类归档

共 205 篇文章 · 返回首页

【金融科技工程】金融科技工程全景:从支付到交易所的系统分类与读图

金融科技(FinTech)不是普通后端加一张账户表。钱的原子性、监管的硬边界、一个小数点的代价,把这个领域推进到工程强度最高的那一档。本文是【金融科技工程】25 篇的总目录与阅读地图:先交代为什么它比一般业务系统更难,再给出对账体、支付体、交易体、风控合规体四维分类,把后续 24 篇挂到骨架上,最后给出一份绿地项目的落地顺序建议。

【金融科技工程】复式记账工程化:科目、分录、余额、对账

把 500 年历史的复式记账翻译成工程师可以落地的数据模型、SQL 表结构与余额计算策略,覆盖充值、下单、退款、分润、红包、多币种与冲销的真实场景,并对比 TigerBeetle、beancount、Ledger CLI、Square LedgerDB、Stripe Ledger 等开源与工业实现。

【金融科技工程】账务数据库设计:TiDB/OceanBase/Postgres 下的分片、索引、热点账户

账务(Ledger)数据库是金融系统最硬的那块骨头。本文从 RPO/RTO 目标出发,对比 PostgreSQL、MySQL、OceanBase、TiDB、CockroachDB、Oracle、TigerBeetle 等主流选型,讲分片维度、热点账户拆解、索引设计、冷热归档、MVCC 并发控制与审计合规,辅以蚂蚁、Stripe、PayPal、Square 的真实演进路径。

【金融科技工程】幂等、事务与一致性:SAGA、TCC、对账补偿

支付与账务系统里,"这笔操作能不能重放一遍"几乎是每一次故障复盘都会问到的问题。本文从网络重试的本质谈起,讲清楚幂等(idempotency)的三层设计、Idempotency-Key 的工程细节、订单状态机的落库方式,并横向对比 2PC、TCC、SAGA、可靠消息四种分布式事务方案,配合 Outbox Pattern、CDC、补偿策略与真实事故案例,给出一份可以直接落地的检查清单。

【金融科技工程】07 卡组织收单链路:银联/Visa/Mastercard、ISO 8583、ISO 20022 迁移

一笔刷卡交易从 POS/网关到发卡行再到清算的全链路剖析:授权、认证(3DS)、清算、结算、争议与对账;ISO 8583 报文拆解、BIN/PAN/Token、EMV 3DS、PCI DSS 与 HSM;附 Python/Go 构造 0100 报文示例。

【金融科技工程】09 支付网关设计:路由、限流、补单、异步通知、签名与防重放

从业务系统到支付宝、微信、银联、Visa、Stripe、Airwallex,中间这一层"支付网关"承担了路由、限流、熔断、补单、签名、异步通知分发等几乎所有脏活累活。本文系统整理一个自研或半自研支付网关的工程设计,包括数据模型、双状态机、路由策略、密钥管理与可观测性。

【金融科技工程】13 跨境支付工程:代理行、nostro/vostro、汇率锁定、对手方风险

从工程视角拆解跨境支付的参与方、资金流、汇率、合规与对账:代理行与 SWIFT MT103/gpi、Nostro/Vostro 账户、Wise/Airwallex 的"本地收本地付"、FX 点差与锁定、稳定币与 CBDC 跨境(mBridge)、中国出海商户的持牌链路、AML/制裁名单工程。

【金融科技工程】数字人民币、稳定币与 CBDC:双层运营、离线支付、链上/链下清算

从工程视角拆解 CBDC、稳定币与数字人民币 e-CNY 的系统架构差异:双层运营、四类钱包、双离线支付、可控匿名;稳定币储备模型与跨链桥;mBridge、Project Agorá 跨境互联;以及商户接入 e-CNY 的落地清单。

【金融科技工程】交易所核心系统架构:撮合、行情、做市、风控、清算

从订单网关到撮合引擎、从 L1/L2/L3 行情到清算与结算,系统梳理证券、期货、加密货币交易所的五大核心子系统;给出低延迟工程技术栈(Disruptor、Kernel Bypass、FPGA)、订单生命周期状态机、主流交易所(NYSE Pillar、Nasdaq INET、上交所新一代、CME Globex、Binance、dYdX v4)对比、以及 Flash Crash 与 Knight Capital 的工程教训。

【金融科技工程】撮合引擎实现:撮合算法、价格优先时间优先、状态机、低延迟工程

深入剖析中央限价订单簿(CLOB)撮合引擎的数据结构与算法,覆盖价格时间优先、Pro-Rata、订单类型、自成交预防、集合竞价、确定性回放、WAL 快照、单线程事件循环与 Disruptor 模型,并给出 Rust/Go 简化实现与单元测试清单。

【金融科技工程】行情分发:MBP/MBO、快照+增量、组播/TCP、FIX/ITCH

从 L1/L2/L3 分级、FIX FAST/ITCH/SBE 协议到 UDP 组播+重传通道、内核旁路与微波传输,系统梳理交易所行情系统的生产、分发与消费;给出 snapshot+incremental 恢复机制、Conflation 与 Full Tick 权衡、kdb+/ClickHouse/QuestDB tick 存储、事件时间回放与 K 线合成实现,并附 Binance WebSocket Diff Depth 维护本地订单簿的 Go/Python 示例。

【金融科技工程】信用风险与授信决策:评分卡、A/B/C 卡、BNPL 与公平借贷

从申请授信到贷后催收,系统梳理消费金融、信用卡、先买后付(BNPL)的信用风险工程全链路;覆盖 FICO、VantageScore、央行征信二代、芝麻信用等评分体系,逻辑回归 + WOE/IV 与 LightGBM A 卡建模,PD/LGD/EAD 风险定价,Klarna/Affirm/花呗分期 BNPL 架构,以及 CFPB、个保法、24%/36% 利率红线下的合规边界。

【金融科技工程】金融级可靠性:两地三中心、单元化、RPO/RTO、灰度

金融系统的可用性不是 SLA 表里的一个数字,而是人民银行、银保监、GB/T 20988 六级灾备、SOX、FFIEC 这些监管框架共同压出来的工程形态。本文从 RTO/RPO 的定义出发,走过单机→主备→同城双活→两地三中心→三地五中心→单元化(LDC/Set)的架构演进,拆解异地多活的数据同步、冲突处理与流量调度,配套混沌工程、全链路压测、应急预案与复盘文化,最后用 Go 写一个可运行的多活流量切换骨架。结合光大 8·16 乌龙指、2021 AWS us-east-1 故障、2020 工行手机银行故障、蚂蚁春节红包等公开案例展开。

【金融科技工程】金融科技未来趋势与工程师路径

系列收官。从货币形态、即时支付、AI、隐私计算、DeFi、监管科技、云原生、后量子密码八大趋势出发,给出未来 5–10 年的工程判断;再给出从入门到专家的金融科技工程师成长路线,以及书单、论文、开源项目与 25 篇全景索引。

【开源许可与版权工程】闭源项目如何选择开源依赖:公司内部合规实操

面向做闭源/商业产品的团队:逐一拆解 MIT、LGPL、GPL、AGPL、SSPL、BSL 在 SaaS、私有化部署、移动 App、嵌入式固件等形态下的许可边界,给出三级名单模板、CI 扫描配置、SBOM 存证方案与出海补充要求。

【开源许可与版权工程】AI 训练数据的版权:从 Books3、Common Crawl 到生成式模型侵权

一篇话讲清楚:网络爬取训练语料、书籍/代码/图片数据集、合成数据与 RAG 私域数据在著作权法上的真实边界。覆盖美国 fair use、欧盟 TDM 例外、日本 30-4 条、中国合理使用与生成式 AI 司法态度;逐个拆解 Books3、Common Crawl、LAION-5B、The Pile、StarCoder、Stack Exchange 等高频数据集的许可现状;给出工程团队在预训练、微调、RAG 三个场景下的可执行检查清单。

【开源许可与版权工程】模型许可证深度解析:OpenRAIL-M、LLaMA、Apache 2.0 在大模型场景的真实区别

模型权重到底是代码、数据、还是全新的客体?为什么 Meta 的 LLaMA、Google 的 Gemma、Stability 的 StableLM、BigScience 的 BLOOM 选了完全不同的许可证?OpenRAIL-M 的 'Use-Based Restrictions' 在工程上如何落地?本文逐条解析 8 类主流模型许可证,给出企业自研、微调、商用、二次分发四个场景的决策清单。

【开源许可与版权工程】中国 AIGC 司法案例集:从春风画面到奥特曼案的工程启示

系统梳理 2023 年以来中国司法实践对生成式 AI 的关键判决:北京互联网法院 Stable Diffusion 春风画面案、广州互联网法院奥特曼案、上海浦东新区奥特曼新案、杭州互联网法院 AI 生成图可版权性案,以及围绕训练数据、平台责任、深度伪造、声音人格权的典型案件。每个案例给事实、裁判要点、与他国判例的比较、工程合规启示。

【可观测性工程】可观测性 vs 监控:从 Zabbix/Nagios 到 OpenTelemetry 的二十年

监控与可观测性不是新旧迭代,而是认知模型的根本转换。本文梳理从 1999 年 Nagios 到 2019 年 OpenTelemetry 的二十年演进时间线,对比 push/pull 模型、数据模型差异,以及国内从 Zabbix 到 Prometheus 再到 OTel 的典型迁移路径与工程坑点。

【可观测性工程】指标体系设计:USE、RED、Golden Signals 与业务 KPI

USE 方法论适用于资源,RED 方法论适用于请求,Golden Signals 适用于服务——三套方法论各有其适用对象。本文从 Brendan Gregg、Tom Wilkie、Google SRE 的原始定义出发,构建覆盖资源→服务→业务的完整指标体系,并给出 Prometheus 命名规范、基数治理策略与可抄的指标清单。

【可观测性工程】时序数据库内核:TSM、TSI、倒排索引与 Gorilla 压缩

深入时序数据库的存储内核:Prometheus TSDB 的 WAL 与块管理、InfluxDB 的 TSM 引擎与 TSI 倒排索引、Gorilla 压缩算法的数学原理、VictoriaMetrics mergeset 架构、ClickHouse MergeTree 作为 metrics 后端,以及国内大厂在 series churn 和 compaction 风暴上踩过的坑。

【可观测性工程】Logs:Loki、ClickHouse、Elasticsearch、OpenObserve 的取舍

从日志场景分类出发,深入对比 Elasticsearch/OpenSearch、Grafana Loki、ClickHouse、OpenObserve 四大方案在全文检索、写入吞吐、存储成本、多租户和运维复杂度上的本质差异,结合 B 站、知乎 ClickHouse 日志平台实践,给出选型决策矩阵与工程坑点。

【可观测性工程】OpenTelemetry 深入:SDK、Collector、语义约定与版本演进

从 OpenTracing 与 OpenCensus 合并到今天的 OTel v1 稳定版,梳理 SDK 生命周期、Collector 流水线、OTLP 协议与 Semantic Conventions 的工程意义,并结合阿里 ARMS、观测云、夜莺等国内实践,给出多租户与尾采样的落地建议。

【可观测性工程】持续性能分析(Profiling):pprof、Pyroscope、Parca、async-profiler、JFR

从 CPU/heap/goroutine/lock/off-CPU 等 Profiling 种类出发,比较采样与插桩两类 profiler 的工作原理,深入 Go pprof、Java async-profiler/JFR、Python py-spy、Pyroscope、Parca eBPF Profiling,以及 OpenTelemetry Profiles 的最新进展,给出国内字节美团的真实落地经验与工程坑点。

【可观测性工程】Events 与变更关联:CloudEvents、发布打点、K8s 事件

把 Events 作为可观测性第四/五支柱来讲:变更事件、K8s Events、业务事件的数据模型,CloudEvents CNCF 规范,Kubernetes Event Exporter,Grafana Annotations,Argo Events,以及如何把发布打点与 Traces/Metrics 关联,实现\"变更即根因\"的故障响应方法论。

【可观测性工程】eBPF 可观测性全景:bcc、bpftrace、libbpf 的工程路径

eBPF 如何实现零侵入、内核级、低开销的可观测性:从 kprobe/uprobe/tracepoint/fentry 钩子机制,到 bcc 工具集、bpftrace 脚本语言、libbpf+CO-RE 可移植编程,再到 Pixie、DeepFlow、Grafana Beyla 等商业化工具,结合内核版本兼容性与生产部署实战。

【可观测性工程】网络可观测性:Cilium Hubble、Pixie、DeepFlow、Tetragon

从 L3/L4/L7 三层观测视角出发,讲解 eBPF socket filter/tc/XDP 的数据采集机制,深入 Cilium Hubble 流日志与指标体系、Tetragon 安全可观测、Pixie 自动化协议解析、国产 DeepFlow 的架构与实践,以及 TLS 解密、HTTP/2 解析、服务拓扑自动发现等核心工程挑战。

持续性能分析(Continuous Profiling):Parca、Pyroscope、Grafana Beyla

深入剖析持续性能分析(Continuous Profiling)的原理、架构与落地实践,覆盖 Parca、Pyroscope、Grafana Beyla 三大主流方案,包含 eBPF 采样、符号解析、火焰图、差异分析以及字节跳动、美团的生产案例与工程坑点。

【开源许可与版权工程】开源战略:什么时候开源、选哪个协议、如何构建商业壁垒

企业开源战略的完整决策框架:何时开源与为何开源、六种商业模式对比(Open Core/双许可/托管服务/支持服务/Source Available)、中国案例(PolarDB/OceanBase/TiDB/鸿蒙/麒麟)、协议改变的教训与代价、以及完整的决策树。

【开源许可与版权工程】红芯浏览器与「国产内核」往事:披皮事件的工程复盘

2018 年 8 月,红芯浏览器在完成 2.5 亿元融资后被发现基于 Chromium 换皮。本文从工程角度复盘这一事件:Chromium BSD-3 协议本身允许什么、不允许什么,如何通过文件指纹识别 Chromium 魔改,以及深度 Deepin、统信 UOS、麒麟 Kylin、中科曙光等国产系统的开源合规现状。

【开源许可与版权工程】中国 GPL 诉讼第一案系列:数字天堂、不乱买、罗盒

数字天堂 vs 柚子科技(2019)、不乱买案(2018)、罗盒 vs 玩友(2019–2020)——这批中国 GPL 诉讼案件厘清了 GPL 作为合同在中国法律框架下的效力,以及违反 GPL 的法律后果。本文梳理案件脉络、判决核心争议与工程合规启示。

【开源许可与版权工程】开源世界全景:从 GNU 到大模型的四十年

一篇写给中国工程团队的开源世界地图:从 1983 年 Richard Stallman 发起 GNU 项目、1998 年 OSI 成立、2018 年 MongoDB 更改 SSPL,到 2020 年开放原子开源基金会成立、再到 2024 年大模型时代的 OpenRAIL 与 LLaMA 许可,把四十年的关键事件、基金会、协议演进和中国线索串成一张可直接指导选型的全景图。

【开源许可与版权工程】GPLv2、GPLv3、LGPL:Linux 内核为什么停在 v2

深入解析 GPLv2 到 GPLv3 的条款变化、Tivoization 反规避与 DRM 条款、专利终止条款;LGPL 链接例外的工程边界;以及 Linus Torvalds 拒绝升级到 v3 的真实原因与嵌入式生态影响。包含路由器厂商、国内 Android 设备的 GPL 合规真实案例。

【开源许可与版权工程】AGPL、SSPL、BSL:云厂商时代的"反云"许可证

深入解析 AGPL v3 网络 Copyleft、MongoDB SSPL、Elastic ELv2、HashiCorp BSL、Redis RSALv2 等"反云"许可证的条款机制与工程影响;阿里云、腾讯云、华为云的应对策略;以及 OceanBase、TiDB 选择 Apache 2.0 对冲此类风险的逻辑。

【开源许可与版权工程】木兰许可证与国产开源许可

深入解读木兰宽松许可证 v2(OSI 认证)与木兰公共许可证 v2(弱 Copyleft)的条款:专利明示授权、中英双语法律效力、中国管辖条款;openEuler、openGauss、OpenHarmony、PaddlePaddle 的使用情况;以及与 Apache 2.0 的对比选择建议。

【开源许可与版权工程】文档、数据、模型的许可:CC、ODbL、OpenRAIL、LLaMA 协议

系统梳理文档(CC 家族)、数据库(ODbL/PDDL)与 AI 模型(OpenRAIL、LLaMA、Mistral、Qwen、DeepSeek)的许可框架;OSI 2024 年开源 AI 定义(OSAID 1.0);以及书生·浦语、智源、百川、通义千问、DeepSeek 在中国的协议演变。

【开源许可与版权工程】CentOS 停服与生态重组:Rocky、Alma、openEuler、龙蜥

2020 年末 Red Hat 宣布 CentOS 8 提前 EOL,将 CentOS 转向滚动发布的 CentOS Stream。本文梳理 Rocky Linux、AlmaLinux 的诞生,2023 年 Red Hat 关闭 RHEL 公开源码后的生态应对,以及中国线索:openEuler、龙蜥 Anolis OS、TencentOS、UOS Server 的路线选择与企业迁移决策框架。

【开源许可与版权工程】OpenHarmony 与开放原子基金会:大厂捐赠意味着什么

华为 HarmonyOS、OpenHarmony、开放原子开源基金会、MindSpore、OpenGauss——这批「捐赠给基金会」的项目意味着什么?本文分析 OpenHarmony 的许可证结构、开放原子基金会的治理模式、商标归属与 Fork 权利,以及与 Android/AOSP 治理的对比。

【开源许可与版权工程】中国开源数据库的协议选择:OceanBase、TiDB、Apache Doris、StarRocks

OceanBase 选 MulanPubL-2.0,TiDB 选 Apache 2.0,Apache Doris 走基金会路线,StarRocks 从闭源 fork 再开源用 Elastic License 2.0,SequoiaDB 选 SSPL。本文分析中国开源数据库在协议选择背后的工程逻辑、商业动机与云厂商生态策略。

【开源许可与版权工程】SCA、SBOM 与软件成分分析:FOSSA、BlackDuck、Syft、OSS Review Toolkit

软件成分分析(SCA)与软件物料清单(SBOM)的工程落地指南:SPDX、CycloneDX 格式详解,商业与开源工具对比,美国 EO 14028、欧盟 CRA、中国等保 2.0 合规要求,以及从引入 Syft 到接入策略网关的实施路径。

【开源许可与版权工程】出海合规:ECCN、实体清单、加密出口、基金会与 OFAC

面向中国开发者的出口管制合规指南:EAR 法规框架、ECCN 5D002 加密分类、实体清单对 Linux Foundation/Apache/CNCF 的影响、OFAC 制裁国对开源贡献的约束、国密算法出口,以及 Apache 基金会贡献的注意事项。

【身份与访问控制工程】IAM 全景:为什么这是高价值赛道

身份与访问控制从一个登录框演进为横跨合规、运维、平台工程和安全的系统工程。本文从一家 SaaS 公司被大客户卡在 SOC 2 合规的真实触发器切入,拆解 IAM、CIAM、IGA、PAM、SSO、目录服务六个子领域的边界,分析 Okta、Entra ID、Auth0、Keycloak、Ping 等主流厂商的定位与落差,给出工程师视角的介入判据与选型路径。

【身份与访问控制工程】企业单点登录:OIDC 与现代 SSO

B2B 大客户的安全团队只认自家 Okta,集团五条产品线要统一账号,合规团队要求所有入口都可审计——这些需求最终都落在同一个协议上:OpenID Connect。本文从一个真实的商业谈判场景切入,系统拆解 OIDC 在 OAuth 2.0 之上增加了什么、授权码流程的每一个字段为什么存在、企业集成里最常见的六类实现坑,以及 Discovery、JWKS、Dynamic Client Registration、mTLS Client Auth 的工程细节,帮助你把 SSO 从 demo 做到可以放进 SOC 2 审计报告里。

【身份与访问控制工程】Session、Refresh Token 与吊销体系

JWT 的无状态签发解决了分布式认证的扩展性,但也把吊销这件事推回到了工程师面前。一个短期 access token 配长期 refresh token 的混合架构,在 Google、Auth0、Keycloak、AWS Cognito 的实现里趋同收敛,但细节差异能决定系统在被攻击时是多丢一个账号还是多丢一百万。本文把 refresh token rotation、reuse detection、family-based abort、OIDC back-channel logout、Redis 黑名单、Bloom filter 加速、批量吊销场景拆开讲清楚。

【身份与访问控制工程】B2B SaaS 多租户权限设计

B2B SaaS 的权限问题远比 B2C 复杂:多个企业客户、各自的内部角色体系、跨租户协作、行列级数据权限、租户自助管理。本文从隔离模型出发,给出租户内 RBAC + 租户间 ReBAC 的混合方案、超级管理员设计、行级权限实现,以及 GitHub、Slack、Notion 的权限模型速览。

【身份与访问控制工程】API Gateway、BFF 与边界认证授权

API Gateway 能做粗粒度的认证鉴权,但细粒度授权必须下沉到服务层。本文梳理 Gateway/BFF/Service 三层认证职责边界,讨论 Token 验证位置选择、RFC 8693 Token Exchange、服务间身份传播(JWT/mTLS/SPIFFE),以及 Istio、Kong、APISIX 的认证授权能力对比。

【身份与访问控制工程】PAM、IGA 与审计合规

系统梳理特权访问管理(PAM)、身份治理(IGA)与审计留痕的工程化落地:从凭证金库、JIT 访问、会话录制,到访问复核、职责分离、不可篡改日志、SOX/HIPAA/PCI-DSS/ISO 27001/等保三级合规映射,以及 CyberArk、Teleport、Vault、StrongDM 的产品选型与最小闭环。

【系统架构设计百科】架构质量属性:不只是"高可用高性能"

需求评审时写下的'高可用、高性能、高并发',到了架构设计阶段几乎无法落地——因为它们不是可执行的需求。本文从 SEI/CMU 的质量属性理论出发,用 stimulus-response 场景模型把模糊需求变成可量化、可验证的架构约束,并拆解属性之间的冲突与联动关系。

【系统架构设计百科】告警策略:如何避免"狼来了"

大多数团队的告警系统都在制造噪声而不是传递信号。阈值告警看似直观,实则产生大量误报和漏报,值班工程师在凌晨三点被叫醒,却发现只是一次无害的毛刺。本文从告警疲劳的工业数据出发,拆解基于 SLO 的多窗口燃烧率告警算法,深入 Alertmanager 的路由、抑制与分组机制,结合 PagerDuty 的告警疲劳研究和真实工程案例,给出一套可落地的告警策略设计方法。

【系统架构设计百科】缓存架构:从本地到分布式的多级缓存体系

缓存是系统性能优化的第一道防线,但缓存穿透、击穿、雪崩等问题让它也成为故障的高发区。本文从五种缓存读写模式的选型矩阵出发,拆解多级缓存的一致性协议,剖析 Facebook Memcache 论文中的工程决策,给出一套从本地缓存到分布式缓存的完整设计方法论。

【系统架构设计百科】数据库扩展:分库分表的工程实践与替代方案

当单表数据量突破千万行、查询延迟从毫秒级劣化到秒级时,分库分表往往是团队面临的第一个选项。本文从分片时机判断、三种分片策略的工程实现、跨分片查询的六种解法讲起,再拆解 Vitess、TiDB、CockroachDB 三套工业级方案的架构差异,回答一个核心问题:NewSQL 能否让我们彻底告别分库分表?

【系统架构设计百科】消息队列架构:异步解耦的设计与陷阱

在分布式系统中,服务之间的直接同步调用会导致强耦合、级联故障和性能瓶颈。消息队列(Message Queue)作为异步通信的核心基础设施,在现代架构中承担着解耦、削峰、容错等关键职责。然而,引入消息队列并非没有代价——投递语义的选择、顺序性保证、消费者组再平衡、幂等消费等问题,每一个都隐藏着工程陷阱。本文将从原理到实践…

【系统架构设计百科】CDN 架构:全球加速的设计原理

互联网应用的用户遍布全球,从北京到纽约、从东京到伦敦,一次 HTTP 请求如果需要跨越半个地球才能到达源站服务器,延迟可能高达数百毫秒。内容分发网络(Content Delivery Network,简称 CDN)通过在全球各地部署边缘节点,将内容推送到离用户最近的位置,从根本上缩短了用户与内容之间的物理距离。本文将从…

【系统架构设计百科】连接池设计:被忽视的性能杀手

每一次网络请求的背后,都隐藏着建立连接的成本。当应用服务器需要与数据库通信时,一次完整的连接建立过程可能消耗数十毫秒;在高并发场景下,频繁创建和销毁连接会迅速耗尽系统资源,成为整个架构中最容易被忽视的性能瓶颈。连接池(Connection Pool)技术通过预先创建并复用连接,将单次连接获取的时间从毫秒级压缩到微秒级,…

【系统架构设计百科】高可用设计模式:冗余、故障转移与仲裁

Active-Passive、Active-Active、N+1 冗余——不同模式的故障检测与切换机制有何差异?本文拆解高可用的度量体系、冗余模型、故障转移机制、脑裂问题与 Fencing 策略,结合 VIP 漂移与 DNS 切换的工程实现,讨论主备切换中的数据一致性,最后以某支付系统数据库高可用架构为例,给出模式选型的完整对比。

【系统架构设计百科】弹性设计模式:熔断器、舱壁与超时

重试为何反而让系统雪崩?熔断器的状态机如何设计才不会误判?本文从一次重试风暴引发的雪崩事故出发,系统拆解熔断器(Circuit Breaker)状态机设计与参数调优、舱壁(Bulkhead)资源隔离策略、级联超时预算分配、指数退避与抖动的数学原理,深入分析 Resilience4j 与 Sentinel 的架构差异,讨论装饰器组合顺序的陷阱,最后给出工程案例复盘和弹性模式选型对比。

【系统架构设计百科】容灾架构:多活与灾备设计

同城双活、异地多活、两地三中心——名词背后是完全不同的 RPO/RTO 和成本曲线。本文从容灾基础概念出发,拆解数据同步的五种拓扑、流量调度与 DNS 切换的工程细节,深入分析蚂蚁金服 LDC(逻辑数据中心)的多活架构,最后给出不同容灾等级的成本对比与选型建议。

【系统架构设计百科】混沌工程:主动验证系统的韧性

混沌工程不是随机破坏——它是一套严谨的实验方法论。本文从混沌工程的五条原则出发,拆解 Netflix 从 Chaos Monkey 到 Chaos Kong 的演进历程,对比 LitmusChaos、ChaosBlade、Chaos Mesh 等工具的架构差异,讲清楚故障注入的分类学和 GameDay 演练的落地流程。

【系统架构设计百科】延迟分析:从 P50 到 P999 的全链路追踪

尾延迟为什么比平均延迟重要 100 倍?Fan-out 场景下延迟放大的数学本质是什么?本文从百分位数学出发,拆解 Jeff Dean 的 Tail at Scale 论文核心思想,深入分析协调省略陷阱、延迟预算分解、对冲请求与绑定请求策略,结合 OpenTelemetry 全链路追踪和 HDR Histogram 实战,给出可落地的延迟优化方法论。

【系统架构设计百科】线程模型:从 thread-per-request 到协程

thread-per-request、Reactor、Proactor、协程——不同线程模型决定了系统的并发上限和架构形态。本文从 C10K 问题出发,逐一拆解 select/poll/epoll 的演进、Reactor 与 Proactor 的设计差异、Go goroutine 的 GMP 调度、Java 21 Virtual Thread 的实现原理、Rust async/await 的零成本抽象,并通过 Nginx、Node.js、Netty 的工程实践说明线程模型如何约束整个系统架构。

【系统架构设计百科】零拷贝与内存映射:数据搬运的极致优化

一次普通的文件传输在 Linux 内核中要经历 4 次数据拷贝和 4 次上下文切换。sendfile、splice、mmap、io_uring、DPDK 各自用不同的方式缩减这条路径,但每种方案都有自己的使用条件和工程限制。本文从 Linux 内核的数据搬运路径出发,拆解五种零拷贝(Zero-Copy)技术的机制与取舍,结合 Kafka、Nginx、DPDK 的工程实践,讨论什么场景该用、什么场景不该用。

【系统架构设计百科】服务发现与注册:动态拓扑的基础设施

在动态扩缩容和容器化部署成为常态的今天,静态 IP 配置已经无法应对服务实例的频繁变化。服务发现与注册机制为分布式系统提供了一张实时更新的通讯录,使服务之间能够在不感知底层拓扑变化的前提下完成通信。本文从客户端发现与服务端发现两种模式出发,深入拆解 Consul、Eureka、Nacos 三大注册中心的架构差异,讨论 DNS 服务发现的局限、健康检查的工程挑战、服务网格中的发现机制,以及优雅关停与反注册的实践细节。

【系统架构设计百科】幂等性设计:分布式环境下的安全重试

2022 年某电商平台在"双十一"大促期间,因网关超时重试机制配置不当,导致支付服务在 3 分钟内对同一笔订单执行了两次扣款。受影响用户超过 1.2 万人,平台不得不在 48 小时内完成逐笔退款与补偿,直接经济损失超过 800 万元。事后复盘发现,根本原因并非网络故障本身,而是支付接口缺乏幂等性(Idempotency…

【系统架构设计百科】契约测试与 Schema 演进:服务间的信任协议

微服务拆分之后,服务间的接口兼容性成为系统稳定性的最大隐患。Pact 的消费者驱动契约、Protobuf 和 Avro 各自不同的 Schema 演进规则、Confluent Schema Registry 的兼容性策略——这些机制共同构成了服务间的信任协议。本文从一个真实的 Breaking Change 事故出发,拆解契约测试与 Schema 演进的工程实践,给出可落地的 CI/CD 集成方案。

【系统架构设计百科】长连接与推送架构:WebSocket、SSE 与 MQTT

推送系统的核心难度不在协议选型,而在连接管理、心跳检测、断线重连、消息可靠投递这些工程细节。本文从 WebSocket 帧格式、SSE 重连机制、MQTT QoS 三级语义讲起,拆解百万长连接的 epoll 单机架构,深入分析心跳探活、指数退避重连、离线消息队列的设计取舍,结合即时通讯和物联网两个工程案例,讨论推送系统从单机到集群的水平扩展路径。

【系统架构设计百科】DDD 战略设计:限界上下文与上下文映射

一个中型电商系统里,"订单"在交易团队意味着"待支付的购物车快照",在物流团队意味着"等待拣货的配送单",在财务团队意味着"一条应收账款记录"。三个团队共用同一张 torder 表、同一个 OrderService 类,每次迭代都互相踩脚。这种混乱的根源不是代码质量,而是缺少一项最基本的架构决策——限界上下文(Boun…

【系统架构设计百科】DDD 战术模式:聚合、实体与值对象

某团队在实施领域驱动设计时,把整个"订单"建模为一个聚合根(Aggregate Root),其中包含订单基本信息、所有订单行、配送信息、支付记录、物流轨迹、评价数据。结果这个聚合加载一次需要从 7 张表联查,保存一次需要锁定整个订单树。并发下单高峰期,数据库锁等待飙升至秒级。这就是典型的"大聚合"反模式——聚合的边界画…

【系统架构设计百科】领域事件与事件风暴:从业务到架构的桥梁

一个 20 人的开发团队花了两个月画 UML 图和写需求文档,依然对核心业务流程的理解存在分歧。直到有一天,团队把领域专家、开发者、测试人员全部拉进一个大会议室,用橙色便利贴写出了系统中发生的所有事件——两个小时后,所有人第一次在同一幅图上看到了业务全貌。这就是事件风暴(Event Storming)的力量。

【系统架构设计百科】防腐层与开放主机服务:系统集成的 DDD 方案

某金融科技公司正在构建新一代交易系统。新系统使用领域驱动设计,模型清晰、代码整洁。然而它必须对接一套运行了 15 年的核心银行系统(Core Banking System)——这套系统的接口返回 COBOL 风格的定长字段,状态码用两位数字表示("01"正常、"02"冻结、"99"未知),金额用"分"而非"元"为单位。…

【系统架构设计百科】CQRS + Event Sourcing 完整实战:从领域建模到部署

某金融交易平台在引入事件溯源(Event Sourcing)后,获得了完整的审计日志和时间旅行能力。但三个月后,团队发现一些事件流已经积累了超过 10 万条事件,聚合加载时间从毫秒级退化到秒级。更麻烦的是,业务迭代中修改了事件结构,旧版本事件无法反序列化。这些问题不是事件溯源本身的缺陷,而是工程实践上的坑——教科书通常…

【系统架构设计百科】DDD 与微服务:用领域模型划分服务边界

某电商团队按数据库表拆分微服务——用户服务管 tuser,商品服务管 tproduct,订单服务管 torder。看起来边界清晰,实际运行中却发现:下单需要同步调用商品服务查价格、调用库存服务检查库存、调用优惠服务算折扣、调用用户服务查地址,一个下单请求扇出 4 次 RPC,任意一个服务超时整条链路就失败。这种"一实体…

【系统架构设计百科】认证架构:从 Session 到 JWT 到 OIDC

用户登录这件事,从单体时代的 Session-Cookie 到微服务时代的 JWT,再到企业级 SSO 的 OIDC,每一次演进都在解决上一代方案的痛点,同时引入新的复杂性。本文从 Session 的状态管理问题出发,拆解 JWT 的无状态验证机制与吊销困境,深入分析 OAuth 2.0 授权码流程的完整攻击面,给出 SSO 架构选型的工程判据。

【系统架构设计百科】零信任架构:不信任网络边界的安全模型

VPN 解决的是'谁能进入内网',但进入之后的横向移动几乎不受约束——这正是近年来大规模数据泄露事件的核心攻击路径。零信任架构(Zero Trust Architecture)将安全判定点从网络边界下沉到每一次请求,通过 mTLS、SPIFFE/SPIRE、持续身份验证和微分段实现'永不信任,始终验证'。本文从 BeyondCorp 模型出发,拆解零信任的核心组件、工程实现和选型取舍。

【系统架构设计百科】API 安全:从注入攻击到供应链威胁

OWASP API Security Top 10 中,BOLA 连续两版占据榜首,却是日常开发中最容易被忽视的漏洞类别。本文从 BOLA、SSRF、注入攻击三条攻击链出发,拆解 WAF 失效的根本原因,讨论 API 网关安全架构与 Shift-Left 策略的工程落地方法,结合金融科技公司的纵深防御实践,回答一个核心问题:如何在 API 层面建立系统性的安全防线。

【系统架构设计百科】密钥管理与证书体系:PKI 的工程实践

证书过期导致全站宕机的事故屡见不鲜——根源不是某个运维人员忘了续期,而是组织缺乏自动化的证书生命周期管理。本文从 PKI 基础架构讲起,深入 ACME 协议的自动化流程、短期证书策略、HSM 硬件密钥保护,给出 cert-manager 与内部 PKI 的完整落地方案。

【系统架构设计百科】日志架构:从 printf 到结构化日志管道

非结构化日志在分布式系统中几乎无用——你无法用 grep 在 500 个 Pod 的输出里定位一个跨服务的超时问题。本文从结构化日志的设计规范讲起,拆解 ELK 和 Loki 两大日志栈的架构差异与成本模型,深入讨论日志采样、动态日志级别、日志管道的流量控制与安全合规,结合 Uber 和 Cloudflare 的工程实践,给出可落地的日志架构设计方案。

【系统架构设计百科】指标与监控架构:维度数据模型与基数爆炸

Prometheus 的 pull 模型在小规模集群中简洁高效,但当目标实例超过十万、指标基数突破千万时,单实例架构迅速遇到瓶颈。本文从时序数据库的存储原理出发,拆解 Prometheus、VictoriaMetrics、Thanos 的联邦与长期存储架构,分析基数爆炸的成因与治理手段,结合 USE、RED、Golden Signals 三种方法论,给出大规模指标监控体系的工程设计路径。

【系统架构设计百科】分布式追踪:OpenTelemetry 与全链路可观测

分布式追踪的采样率设多少?100% 采样的成本和收益分别是什么?本文从 Google Dapper 论文的 Trace/Span 模型出发,拆解 W3C Trace Context 标准的传播机制,深入 OpenTelemetry SDK、Collector、Exporter 三层架构,对比 Jaeger 与 Tempo 的存储设计差异,讨论头部采样、尾部采样与自适应采样的工程取舍,结合 Uber 迁移 OpenTelemetry 的实战经验,给出追踪数据驱动的自动拓扑发现与关键路径分析方法。

【系统架构设计百科】特性开关架构:安全发布与实验的工程实践

Feature Flag 不只是 if-else——当系统中存在数千个 flag 时,如何分类管理、控制生命周期、避免技术债务堆积?本文从特性开关的四种分类出发,拆解 LaunchDarkly 与 Unleash 的 SDK 架构和求值引擎,深入讨论 flag 清理策略、渐进发布、A/B 实验集成,结合 Netflix、GitHub 等公司的工程实践,给出可落地的特性开关治理方案。

【系统架构设计百科】故障排查方法论:从告警到根因的系统化路径

凌晨三点的告警响了,你打开笔记本,盯着一堆指标不知道从哪里下手——两小时后发现是配置改错了。这种经历几乎每个 oncall 工程师都有过。本文从 Incident Command System 在 SRE 中的适配讲起,拆解从告警到根因的系统化排查路径,覆盖事件分级、假设驱动调试、事后复盘的无责文化、Google 与 Meta 的 oncall 体系,给出可落地的 Runbook 模板和 Postmortem 模板。

【系统架构设计百科】Serverless 架构:冷启动、成本模型与适用场景

2023 年,Datadog 发布的年度 Serverless 报告显示,超过 70% 的 AWS 用户已在生产环境中使用 Lambda,平均每个组织部署了超过 1000 个 Lambda 函数。然而,同一份报告也指出,冷启动(Cold Start)仍然是开发者最关注的性能问题——在 Java 运行时中,P99 冷启动…

【系统架构设计百科】基础设施即代码:Terraform、Pulumi 与 GitOps

2023 年 12 月,一家金融科技公司的运维工程师在 AWS 控制台上手动修改了一条安全组规则,把某个内部服务的端口从仅限 VPC 内访问改成了 0.0.0.0/0。这次修改的目的是临时排查一个跨区域的连接问题,本打算五分钟后改回来。结果工程师被另一个紧急工单打断,忘记了这件事。三天后,自动化扫描工具发现该端口暴露在…

【系统架构设计百科】Service Mesh:Sidecar 的代价与无 Sidecar 的未来

2023 年,某头部电商平台在全量接入 Istio 后发现:每个 Pod 的内存占用增加了 40-70 MB,p99 延迟从 12 ms 上升到 18 ms,整个集群每月多出数万美元的计算成本。这并非个例。CNCF 2024 年度调查显示,超过 60% 的受访企业已在生产环境中使用或评估服务网格(Service Mes…

【系统架构设计百科】多云与混合云架构:避免供应商锁定的代价

2019 年,一家欧洲金融科技公司在 AWS 上运行全部核心业务。年度 AWS 账单 1200 万美元,合同续签时 AWS 给出的折扣力度不如预期。CTO 拍板:"我们要做多云,把 30% 的工作负载迁到 GCP,增加谈判筹码。"18 个月后,GCP 上确实跑了一部分服务,但公司为此新招了 8 名专职云平台工程师,重写…

【系统架构设计百科】平台工程:构建开发者自服务的内部平台

2022 年,Spotify 公开了一个数据:新工程师从入职到第一次将代码部署到生产环境,平均只需要不到一天。在同一年,Humanitec 对 1000 多家企业的调查显示,没有内部平台的公司里,这个过程的中位数是两周到一个月——主要时间花在了"找人问怎么配置 CI 流水线""等待 Ops 团队开通 Kubernete…

【系统架构设计百科】单体到微服务:迁移策略与 Strangler Fig 模式

2016 年,英国某大型零售商投入 3 年、耗资数亿英镑试图用"大爆炸"方式重写其核心电商系统,最终项目被彻底取消,旧系统继续运行。这并非孤例——Netscape 6 的全面重写导致公司丧失浏览器市场主导地位,而 Friendster 的重写则直接加速了公司的消亡。大爆炸重写(Big Bang Rewrite)的失败率…

【系统架构设计百科】技术债务:量化、可视化与偿还策略

Ward Cunningham 在 1992 年首次提出技术债务(Technical Debt)这一概念时,他将其类比为金融债务:为了快速交付而做出的技术妥协就像借款,后续的维护成本就是利息。三十多年过去了,技术债已经从一个形象的隐喻演变为可以被精确量化的工程指标。根据 Stripe 2018 年的调研报告,全球开发者…

【系统架构设计百科】架构治理:适应度函数与演进式架构

架构决策写在文档里,三个月后没人记得;架构评审会上达成的共识,半年后被新来的同事无意打破。这是每一个经历过大型系统演进的架构师都深有体会的痛点。当系统规模超过 50 个微服务、团队人数突破 200 人时,仅靠文档和评审来守住架构约束,几乎不可能。Netflix 在 2018 年提出的「铺好的路(Paved Road)」…

【系统架构设计百科】遗留系统现代化:评估框架与渐进策略

全球超过 70% 的企业核心交易仍运行在 20 年以上的遗留系统(Legacy System)之上。银行的核心账务跑在大型机(Mainframe)COBOL 程序里,电信的计费系统依赖上世纪的 C/C++ 代码,政府的社保系统还在用 PowerBuilder 客户端。这些系统每天处理着数以亿计的交易,承载着关键业务逻辑…

【系统架构设计百科】架构师工具箱:建模、可视化与决策辅助

架构设计不是凭空想象,而是需要工具辅助的系统性工程。从最初的白板画图到如今的代码化架构描述(Architecture as Code),架构师手中的工具箱经历了深刻的变革。一个成熟的架构团队,至少需要在三个维度上配备趁手的工具:建模与描述——将头脑中的架构意图精确表达出来;可视化与沟通——让不同角色的干系人都能理解架构…

【系统架构设计百科】康威定律与逆康威定律:组织架构决定系统架构

很多团队在推进微服务化的过程中会遇到一个诡异的现象:技术方案设计得很漂亮,领域模型划分得也合理,但落地之后服务之间的耦合度却越来越高,接口爆炸式增长,跨服务调用链路越来越深。排查下来,根本原因往往不在代码里,而在组织架构里——三个团队负责的三个服务之间,恰好复刻了三个团队之间的汇报关系和沟通路径。这就是康威定律(Con…

【系统架构设计百科】Twitter 架构演进:从 Ruby 到分布式时间线

2006 年,Jack Dorsey 发出第一条推文时,Twitter 只是一个运行在单台服务器上的 Ruby on Rails 应用。到 2012 年,它已经变成一个由数百个 JVM 微服务组成的分布式系统,每秒处理超过 40 万条推文的写入和数十亿次时间线读取。这段演进历程浓缩了互联网架构从单体到微服务、从通用数据…

【系统架构设计百科】Netflix 架构全景:混沌工程的诞生地

Netflix 在 2008 年经历了一次长达三天的数据库故障,导致 DVD 寄送业务全面瘫痪。这次事故促使团队做出了一个关键决策:放弃自建数据中心,全面迁移到亚马逊云服务(Amazon Web Services,AWS)。这一决策不仅重塑了 Netflix 的技术栈,还催生了混沌工程(Chaos Engineerin…

【系统架构设计百科】Uber 架构演进:从单体到领域导向微服务

Uber 在 2010 年上线时只有一个 Python 单体应用,服务三个城市的出行需求。到 2020 年,这家公司运行着超过 4000 个微服务,覆盖出行、外卖、货运、金融等多条业务线,日均处理数千万次行程请求。这段十年的技术演进史,浓缩了单体拆分、微服务膨胀、治理回归三个阶段的完整教训。本文将从时间线出发,逐层拆解…

【系统架构设计百科】阿里巴巴架构:双十一的流量工程

2024 年双十一,天猫交易峰值达到 58.3 万笔/秒。这个数字背后,是阿里巴巴十余年架构演进的结晶——从最初的单体 LAMP 栈,到如今横跨全球多个数据中心的单元化架构(Logical Data Center,LDC),每一次双十一都是对系统极限的真实检验。本文将从单元化架构、分库分表中间件、全链路压测、弹性伸缩、…

【系统架构设计百科】Slack 架构:实时协作的工程挑战

Slack 每天为超过一千万活跃用户提供实时消息服务,峰值时段同时维持数百万条 WebSocket(全双工通信协议)长连接。一条消息从发送到被同一频道所有成员看到,端到端延迟通常控制在 200 毫秒以内。这套系统并非一蹴而就:它从一个 PHP 单体应用起步,历经数次关键重构,逐步演变为以 Hack、Go、Java 为核…

【系统架构设计百科】事件驱动架构:从消息通知到事件溯源

事件通知、事件携带状态转移、事件溯源三种模式经常被混为一谈,但它们在耦合度、数据一致性、存储成本和调试难度上有本质差异。本文基于 Martin Fowler 的 EDA 分类,拆解三种模式的机制与取舍,分析 Kafka 在事件驱动架构中的角色与局限,讨论事件排序的工程挑战和 schema 演进策略。

【系统架构设计百科】架构决策与 ADR:如何做出可追溯的技术决策

口头约定的架构决策会在人员流动中丢失,会在争论中反复翻车。ADR(Architecture Decision Records)用一种轻量的文档格式,把每一个关键技术决策的背景、选项、理由和代价写下来,跟着代码一起版本管理。本文从 ADR 的三种主流格式讲到 Git 仓库中的实操管理,再拆解 Spotify 和 Uber 的工业实践。

【系统架构设计百科】架构视图与文档:C4 模型从入门到实战

架构图画完三个月就过期,架构文档写完没人看。问题不在于画不画,而在于用什么模型画、用什么方式维护。本文从 C4 模型的四层视图出发,拆解 diagram-as-code 工具链和文档即代码的工程实践,给出一套让架构文档能活下来的方法。

【系统架构设计百科】分层架构:最古老的模式为何仍然有效

分层架构是软件工程中存活时间最长的架构模式。本文拆解分层的核心价值——关注点分离与依赖管理,区分 Layer 与 Tier 的本质差异,对比严格分层与宽松分层在耦合度、可测试性和性能上的真实影响,分析依赖倒置如何从根本上改变分层方向,并结合 Spring Boot 和 Django 的分层变体给出工程判断。