返回架构笔记
Arch Day 117

Arch Day 117: 金融领域面试专题

Arch Day 117: 金融领域面试专题

2026-07-25
第四阶段 - 高阶融合
面试金融架构核心银行支付风控合规记账引擎CeFiDeFi

日期: 2026-07-25 (Day 117) 阶段: 第四阶段 - 高阶融合 标签: #面试 #金融架构 #核心银行 #支付 #风控 #合规 #记账引擎 #CeFi #DeFi


概述

金融领域架构面试是行业特化面试中难度最高的——面试官通常本身就是资深金融IT从业者,会深入考察你对记账原理、支付流程、风控机制、合规要求的理解。本专题整理15道金融架构高频面试题,覆盖核心银行、支付系统、风控引擎、合规架构、交易系统、资管系统、开放银行等核心领域。

结合10年金融零售软件产品经理+BA+开发经验,每道题提供实战视角的深度回答。


题目 1:如何设计多币种记账引擎?

30秒版本

多币种记账引擎的核心是"账户+分录+汇率"三位一体。每个账户有"记账币种"属性,每笔交易生成借贷分录对,跨币种交易通过汇率服务实时换算,所有分录必须满足"借贷平衡"。关键设计:内部统一用最小单位(分/cent)避免浮点精度问题,汇率时点冻结(交易发生时锁定汇率),多币种报表需要按报表币种统一折算。

2分钟版本

记账引擎核心模型

┌─────────────────────────────────────────────────┐
│                 记账引擎核心模型                   │
├─────────────────────────────────────────────────┤
│                                                 │
│  科目体系 (Chart of Accounts)                    │
│  ├── 资产类: 现金/存放同业/贷款/投资...          │
│  ├── 负债类: 存款/同业拆入/应付...              │
│  ├── 所有者权益: 资本/公积/未分配利润...         │
│  ├── 收入类: 利息收入/手续费收入...              │
│  └── 支出类: 利息支出/运营费用...                │
│                                                 │
│  账户结构 (Account)                              │
│  ├── 客户账号 (外部可见)                         │
│  ├── 内部账号 (记账用)                           │
│  ├── 币种 (ISO 4217: CNY/USD/EUR...)            │
│  ├── 精度 (CNY: 2位 / JPY: 0位 / BTC: 8位)     │
│  ├── 余额方向 (借方余额/贷方余额)                │
│  └── 余额 (以最小单位存储,如分)                 │
│                                                 │
│  分录 (Journal Entry)                            │
│  ├── 交易流水号 (全局唯一)                       │
│  ├── 借方: 科目 + 账户 + 币种 + 金额            │
│  ├── 贷方: 科目 + 账户 + 币种 + 金额            │
│  ├── 汇率 (跨币种时)                            │
│  ├── 交易时间                                   │
│  └── 摘要                                       │
│                                                 │
│  核心约束: 借方合计 = 贷方合计 (绝对不可违反)     │
└─────────────────────────────────────────────────┘

多币种处理

场景: 客户从USD账户转$1000到CNY账户

Step 1: 获取实时汇率
  USD/CNY = 7.25 (汇率服务)

Step 2: 计算目标金额
  $1,000 × 7.25 = ¥7,250

Step 3: 生成分录
  借: 客户USD账户 $1,000.00  (原币)
  贷: 客户CNY账户 ¥7,250.00 (原币)
  借: 汇兑损益(待确认) ¥7,250.00
  贷: 外汇买卖 $1,000.00

Step 4: 验证借贷平衡
  借方折算为基准币(CNY): $1,000 × 7.25 = ¥7,250
  贷方: ¥7,250
  平衡 ✓

关键设计点:
  • 汇率时点冻结: 交易时锁定汇率,后续不变
  • 汇兑损益: 期末按市值重估,差额计入损益
  • 精度处理: 所有金额用BigDecimal/long(分),禁用float/double
  • 舍入规则: 统一银行舍入法(如四舍六入五成双)

数据模型

CREATE TABLE account (
  account_id     BIGINT PRIMARY KEY,
  customer_id    BIGINT,
  currency       CHAR(3) NOT NULL,      -- ISO 4217
  precision_     TINYINT DEFAULT 2,      -- 小数位数
  balance        BIGINT NOT NULL DEFAULT 0, -- 最小单位
  balance_dir    ENUM('DEBIT','CREDIT'),
  status         ENUM('ACTIVE','FROZEN','CLOSED'),
  created_at     DATETIME NOT NULL
);

CREATE TABLE journal_entry (
  entry_id       BIGINT PRIMARY KEY,
  transaction_id BIGINT NOT NULL,       -- 关联交易
  account_id     BIGINT NOT NULL,
  direction      ENUM('DEBIT','CREDIT'),
  currency       CHAR(3) NOT NULL,
  amount         BIGINT NOT NULL,        -- 最小单位(分)
  exchange_rate  DECIMAL(18,8),          -- 跨币种时
  base_amount    BIGINT,                 -- 基准币种金额
  entry_time     DATETIME NOT NULL,
  memo           VARCHAR(200),
  INDEX idx_account (account_id, entry_time),
  INDEX idx_transaction (transaction_id)
);

追问准备

追问: "期末汇兑损益重估怎么做?"

月末/年末,所有外币账户余额按当前市场汇率重新折算为报表币种,与账面折算金额的差额计入"汇兑损益"。实现上,跑批量任务扫描所有外币账户,计算差额并生成调整分录。关键是这些调整分录要标记为"重估"类型,与正常交易分录区分,且下期初需要冲回。


题目 2:支付系统如何保证"不多扣不少扣不重扣"?

30秒版本

"不多扣"靠金额校验(订单金额=支付金额=扣款金额,三方一致);"不少扣"靠状态机(订单从"待支付"到"已支付"必须经过支付确认);"不重扣"靠幂等性(支付请求带唯一ID,重复请求返回第一次结果)。三者的核心保障机制是对账——每日对账发现一切异常,T+1自动调平。

2分钟版本

三不原则的实现

┌──────────────────────────────────────────────────┐
│               支付"三不"保障体系                   │
├──────────────────────────────────────────────────┤
│                                                  │
│  不多扣 (No Overcharge):                          │
│  ├── 订单金额签名: 下单时对金额签名,支付时验签    │
│  ├── 金额不可变: 支付请求中的金额=订单锁定金额     │
│  ├── 三方一致: 商户订单金额=支付系统金额=渠道扣款   │
│  └── 异常熔断: 金额不一致直接拒绝,不尝试修正      │
│                                                  │
│  不少扣 (No Undercharge):                         │
│  ├── 先支付后确认: 收到支付渠道成功通知才确认       │
│  ├── 状态机严格: 待支付→支付中→已支付(不可跳过)    │
│  ├── 回调验签: 支付渠道回调必须验证签名真实性       │
│  └── 主动查询: 回调超时后主动查询支付渠道状态       │
│                                                  │
│  不重扣 (No Double Charge):                       │
│  ├── 幂等键: 每笔支付请求有唯一payment_request_id  │
│  ├── 去重表: DB唯一索引防重复                      │
│  ├── 状态判断: 已支付状态直接返回成功               │
│  └── 渠道幂等: 同一商户订单号重复支付渠道也会拒绝   │
│                                                  │
│  终极保障: 对账                                    │
│  ├── 日终对账: 商户订单 vs 支付系统 vs 渠道         │
│  ├── 差异处理: 长款(多收)→退款 / 短款(少收)→补收   │
│  └── 对账率目标: 99.999% (万分之一以内差异)        │
└──────────────────────────────────────────────────┘

幂等实现详解

POST /payment
{
  "payment_request_id": "PAY-2026-0725-001",  // 幂等键
  "order_id": "ORD-12345",
  "amount": 9900,  // ¥99.00
  "currency": "CNY"
}

处理流程:
1. 查询去重表 (SELECT ... WHERE payment_request_id = ?)
2. 如果已存在:
   → 返回上次结果 (不重复处理)
3. 如果不存在:
   → 插入去重表 (INSERT ... ON DUPLICATE KEY → 并发保护)
   → 执行支付逻辑
   → 更新去重表状态

关键: 去重表必须用数据库唯一索引,不能只靠应用层判断

追问准备

追问: "支付渠道回调丢失怎么办?"

三层保障:(1) 重试——支付渠道通常会重试3-5次回调;(2) 主动查询——30秒/1分钟/5分钟/15分钟递增频率主动查询渠道状态;(3) 对账兜底——即使主动查询也失败了,日终对账会发现差异并补偿。在设计上,支付系统不应该依赖回调——回调是"快速通知",查询+对账才是"最终一致性保障"。


题目 3:实时风控如何做到毫秒级?

30秒版本

毫秒级风控的核心是"预计算+规则引擎+内存计算"。用户画像和特征提前计算好存在Redis/内存中,交易发生时只需查特征+跑规则,不需要实时计算。规则引擎用Drools或自研的决策表,毫秒级匹配。AI模型离线训练、在线推理(PMML/ONNX),推理时间<10ms。整体流程:交易请求→特征获取(Redis <1ms)→规则匹配(<5ms)→模型推理(<10ms)→决策(<1ms)→总计<20ms。

2分钟版本

实时风控架构

                    交易请求
                       │
                       ▼
              ┌────────────────┐
              │   风控网关      │  <1ms
              │   (接入+路由)   │
              └────────┬───────┘
                       │
                       ▼
              ┌────────────────┐
              │   特征服务      │  <3ms
              │                │
              │ ┌────────────┐ │
              │ │ 实时特征    │ │ ← Redis/Flink
              │ │ (近30min    │ │    交易频次/金额累计
              │ │  交易统计)  │ │
              │ ├────────────┤ │
              │ │ 离线特征    │ │ ← HBase/Redis
              │ │ (用户画像   │ │    历史行为/信用评分
              │ │  历史统计)  │ │
              │ └────────────┘ │
              └────────┬───────┘
                       │
                ┌──────┴──────┐
                ▼             ▼
        ┌──────────┐  ┌──────────┐
        │ 规则引擎  │  │ AI模型    │  <10ms
        │          │  │          │
        │ 黑名单    │  │ 欺诈检测  │
        │ 频次限制  │  │ 异常评分  │
        │ 金额阈值  │  │ 设备指纹  │
        │ 地域规则  │  │ 行为序列  │
        └──────┬───┘  └──────┬───┘
               │             │
               └──────┬──────┘
                      ▼
              ┌────────────────┐
              │   决策引擎      │  <1ms
              │                │
              │  PASS: 放行     │
              │  REVIEW: 人工   │
              │  REJECT: 拒绝   │
              │  CHALLENGE: 验证│ (二次验证/短信)
              └────────────────┘

总耗时目标: P99 < 50ms, P95 < 20ms

特征预计算架构

实时特征 (Flink流计算):
  交易事件 → Flink → 聚合计算 → Redis
  ├── 近5分钟交易次数
  ├── 近30分钟交易金额累计
  ├── 近1小时不同商户数
  └── 设备切换频率

离线特征 (批量计算):
  历史数据 → Spark/Hive → 用户画像 → HBase → Redis
  ├── 30天平均交易金额
  ├── 历史欺诈标记
  ├── 常用设备/地点
  └── 社交网络风险评分

关键: 交易时只需"查询"特征(O(1)),不需要"计算"特征
这是毫秒级的核心秘密

2025-2026趋势:根据PYMNTS的报告,2025年风控架构的最大变化是"统一风险基础设施"——不再将欺诈检测、AML、信用风控作为独立系统,而是构建AI原生的统一风险平台,跨越客户全生命周期管理风险。同时,不同支付轨道(RTP/FedNow/Zelle/Card/ACH)需要特定的风控模型,因为每种轨道的行为模式不同。

追问准备

追问: "AI模型误判率高怎么办?"

三个层面:(1) 模型层面——优化特征工程、增加训练数据、调整阈值(高阈值降低误报但可能漏报);(2) 策略层面——不依赖单一模型,多模型投票+规则兜底;(3) 运营层面——误判进人工审核,审核结果反馈给模型优化。核心指标是"精确率vs召回率"的平衡——金融场景通常宁可多报(误报)也不能漏报(漏检),但误报率太高会影响用户体验。


题目 4:核心银行日切如何不影响在线?

30秒版本

日切(Day-End Processing)是核心银行每天必须完成的批处理——计息、账务汇总、报表生成等。传统做法是停机日切(如凌晨2-4点不能交易),现代做法是"滚动日切"或"准实时日切"——通过会计日期隔离、双日期账户余额、分片并行处理等技术手段,在不停止在线交易的情况下完成日切。关键是将日切拆解为多个独立批量任务,分时段滚动执行。

2分钟版本

传统日切 vs 现代日切

维度传统日切现代日切
方式停机批处理滚动/准实时
影响2-4小时不可用对客户无感
会计日期统一切换渐进切换
并行度串行执行高度并行
复杂度
适用传统银行互联网银行/新型核心

现代日切方案

方案: 双会计日期 + 分片滚动

设计思路:
1. 每个账户有"当前会计日期"字段
2. 日切时逐个账户(或批量)切换会计日期
3. 在线交易按账户的当前会计日期记账
4. 已切和未切的账户可以同时接受交易

┌──────────────────────────────────────────────┐
│  时间线:                                      │
│                                              │
│  23:00  日切开始                              │
│    │    账户分片: [A-F] [G-L] [M-R] [S-Z]    │
│    │                                         │
│  23:15  [A-F]完成日切 → 会计日期+1            │
│  23:30  [G-L]完成日切 → 会计日期+1            │
│  23:45  [M-R]完成日切 → 会计日期+1            │
│  00:00  [S-Z]完成日切 → 会计日期+1            │
│    │                                         │
│  00:15  汇总校验,日切完成                     │
│                                              │
│  全程在线交易不中断!                           │
│  关键: 交易按账户的会计日期入账                 │
└──────────────────────────────────────────────┘

并发处理:
  账户正在日切中(计息) → 该账户交易排队等待(秒级)
  其他账户正常交易
  → 对单个客户影响: 最多等待几秒
  → 对系统整体: 无中断

日切任务清单

任务优先级 (DAG编排):

P0 (必须完成, 影响隔日交易):
  ├── 计息: 存款利息/贷款利息计算
  ├── 逾期处理: 逾期标记/罚息计算
  ├── 会计日期切换: 所有账户切到新日期
  └── 余额快照: 日终余额存档

P1 (应该完成, 影响报表):
  ├── 账务汇总: 各科目日终汇总
  ├── 监管报表: 日报数据准备
  └── 对账: 内部科目平衡检查

P2 (可以延后, 不影响交易):
  ├── 数据归档: 历史数据迁移
  ├── 统计报表: 经营分析数据
  └── 营销数据: 客户标签更新

追问准备

追问: "如果日切过程中系统崩溃了怎么办?"

设计要求日切任务必须是幂等的可恢复的。每个任务记录处理进度(如"已处理到账户ID=10000"),崩溃后从断点恢复而非从头开始。计息结果先写入临时表,全部完成后再写入正式表(类似事务的Two-Phase)。此外,日切前会做检查点(Checkpoint),如果恢复失败可以回退到检查点。


题目 5:跨境支付为什么慢?如何优化?

30秒版本

跨境支付慢的根本原因是"多层中介+多次结算+合规检查"。传统SWIFT报文需要经过发起行→代理行→SWIFT网络→代理行→收款行,每一跳都可能要等批处理结算(T+1甚至T+3),再加上AML/KYC合规检查。优化方向:实时支付网络(如Visa B2B Connect/RippleNet)、减少中间环节(点对点结算)、预清算模式(先到账后结算)。2025-2026最大趋势是稳定币跨境支付(USDC/USDT),绕过传统银行网络,实现分钟级到账。

2分钟版本

传统跨境支付慢在哪

传统路径 (SWIFT + 代理行):

发起行 → 发起行代理行 → SWIFT网络 → 收款行代理行 → 收款行
  │          │              │              │           │
 Day 0     Day 0-1        Day 1         Day 1-2     Day 2-3
 客户      合规检查        报文传输       合规检查     入账
 提交      AML/CTF        (秒级)        AML/CTF     通知

总耗时: 2-5个工作日

慢的原因:
1. 多层中介: 每跳都有处理时间
2. 批处理结算: 代理行通常每天结算1-2次
3. 合规检查: 每个节点都要做AML/KYC
4. 时区差异: 不同国家工作时间不同
5. 币种转换: 需要外汇市场(可能只在工作日)

现代优化方案

方案速度原理适用
SWIFT gpiT+0~T+1端到端追踪+SLA银行间大额
Visa B2B Connect1-2天→同日减少中介B2B
RippleNet/ODL分钟级XRP桥梁+预资金中小额
稳定币(USDC)分钟级区块链直接转账C2C/B2B
各国实时支付互联秒级如UPI-PayNow互联双边

架构优化方向

方向1: 预清算/预资金模式
  ├── 在收款国预存资金池
  ├── 客户汇款时从资金池直接入账(秒级)
  ├── 后台批量清算补充资金池(T+1)
  └── 适用: 固定通道的高频跨境支付

方向2: 链上结算
  ├── 用USDC/USDT作为中间桥梁
  ├── 发起国法币→USDC→区块链转账→USDC→收款国法币
  ├── 区块链确认: 1-15分钟
  ├── 法币出入金: 取决于当地合作方
  └── 适用: 新兴市场/小额跨境

方向3: 合规自动化
  ├── AI驱动的AML筛查(从分钟降到秒)
  ├── 预审查: 常客/白名单免审
  ├── 平行处理: 合规检查和支付处理并行
  └── 共享KYC: 一次验证多处使用

追问准备

追问: "稳定币跨境支付的合规风险?"

最大风险是"Travel Rule"(FATF旅行规则)——跨境虚拟资产转移必须携带发送方和接收方信息,很多稳定币转账目前不符合这个要求。2025年各国正在收紧监管,欧盟MiCA已要求所有稳定币服务商合规,美国的稳定币法案也在推进。架构上需要嵌入Travel Rule合规层(如Notabene/Chainalysis),在链上转账的同时通过链下通道传递合规信息。


题目 6:自研 vs 购买核心银行如何决策?

30秒版本

决策框架基于四个维度:业务差异化需求(独特的产品需要自研)、团队能力(有没有核心银行开发经验)、时间约束(自研至少18-24个月,购买6-12个月)、总拥有成本(购买前期低但长期许可费高,自研前期高但长期可控)。2025-2026趋势是"云原生核心银行SaaS"成熟度显著提升,Thought Machine/Mambu/Temenos Infinity等产品可覆盖80%+的标准功能,只需要定制化20%差异部分。中小银行推荐购买+定制,大型银行可考虑"核心自研+周边购买"的混合策略。

2分钟版本

决策矩阵

                 业务差异化需求
              低              高
         ┌──────────┬──────────┐
    强   │ 购买SaaS  │ 混合策略  │
  技     │ (标准需求  │ (核心自研  │
  术     │  够用)     │  周边购买) │
  能  ├──────────┼──────────┤
  力     │ 购买SaaS  │ 购买+深度  │
    弱   │ (唯一选择) │  定制      │
         └──────────┴──────────┘

TCO对比(5年周期)

成本项自研购买(License)购买(SaaS)
第1年$5M(开发)$2M(许可+实施)$500K(订阅+实施)
第2-5年/年$1M(维护)$400K(维护+许可)$500K(订阅)
5年TCO$9M$3.6M$2.5M
定制自由度100%50%30%
上线时间18-24月6-12月3-6月
团队需求20+人5-10人3-5人

2025-2026云原生核心银行市场

主流供应商:
  ├── Thought Machine (Vault): 谷歌投资,最受关注
  │   └── 客户: Standard Chartered, Lloyds, SEB
  ├── Mambu: 欧洲领先SaaS核心
  │   └── 客户: N26, OakNorth
  ├── Temenos (Infinity/Transact): 传统巨头转型
  │   └── 客户: 3000+银行
  ├── 10x Banking: 英国FinTech
  │   └── 客户: Westpac子品牌
  └── 国内: 中电金信/长亮/宇信 (传统) / 百度-度小满 (互联网)

选型考量:
  1. 功能覆盖度: 对标BIAN Service Domain
  2. 本地化: 是否支持当地监管/报表
  3. 集成能力: API/事件接口丰富度
  4. 扩展性: 能否支撑业务增长
  5. 供应商风险: 财务健康/客户数/投资方

追问准备

追问: "如果选择购买但供应商倒闭了怎么办?"

三层保护:(1) 合同条款——要求源代码托管(Escrow),供应商倒闭时获得源代码;(2) 架构解耦——核心银行通过API集成,不直接依赖内部实现,必要时可以替换;(3) 数据独立——所有客户数据存在自己的数据库,不被供应商锁定。选型时也要评估供应商的财务状况和融资情况。


题目 7:开放银行安全架构?

30秒版本

开放银行的安全架构基于OAuth 2.0 + FAPI(Financial-grade API)标准。核心要素:客户授权(OAuth授权码流程+PKCE)、API鉴权(mTLS+JWT)、数据最小化(只共享客户授权的数据范围)、第三方准入(TPP必须持有监管牌照)、监控审计(所有API调用留痕+异常检测)。2025-2026趋势是从"开放API"演进到"嵌入式金融"——银行能力以BaaS形式嵌入第三方应用。

2分钟版本

安全架构分层

┌─────────────────────────────────────────────┐
│           开放银行安全架构                     │
├─────────────────────────────────────────────┤
│                                             │
│  L1: 准入控制                                │
│  ├── TPP注册: 验证监管牌照(PSD2/Open Banking) │
│  ├── App审核: API用途/数据范围审查            │
│  ├── 证书管理: 颁发mTLS客户端证书            │
│  └── 频率限制: API调用配额                    │
│                                             │
│  L2: 客户授权 (OAuth 2.0 + FAPI)            │
│  ├── 授权码流程 + PKCE (防截获)              │
│  ├── 强客户认证 (SCA): 双因素                │
│  ├── 细粒度授权: 账户/数据范围/有效期        │
│  ├── 动态链接: 授权与具体交易绑定            │
│  └── 随时撤回: 客户可以随时取消授权           │
│                                             │
│  L3: API安全                                 │
│  ├── mTLS: 双向TLS认证                       │
│  ├── JWT签名: 请求/响应签名(防篡改)          │
│  ├── 加密: 敏感字段级加密(JWE)               │
│  └── 请求对象签名: FAPI Part 2 (PAR)         │
│                                             │
│  L4: 数据安全                                │
│  ├── 数据最小化: 只返回授权范围内的数据       │
│  ├── 脱敏: 卡号/身份证号部分遮蔽             │
│  ├── 审计: 所有数据访问记录                   │
│  └── 加密存储: 敏感数据加密落盘              │
│                                             │
│  L5: 监控与响应                               │
│  ├── 异常检测: AI监控API调用模式              │
│  ├── 实时告警: 可疑行为秒级告警              │
│  ├── 熔断: 异常TPP自动熔断                   │
│  └── 事件响应: 安全事件处理流程              │
└─────────────────────────────────────────────┘

追问准备

追问: "嵌入式金融(BaaS)和开放银行的区别?"

开放银行是"银行开放API给第三方用"(监管驱动,如PSD2)。嵌入式金融是"银行能力嵌入非金融App"(商业驱动)。比如一个电商平台在结账时提供"分期付款",背后调用银行的BaaS API完成。技术上BaaS是开放银行的"超集"——不仅开放数据,还开放交易能力(开户/放贷/支付)。


题目 8:AML系统如何降低误报率?

30秒版本

AML(反洗钱)系统最大的痛点是误报率过高——行业平均95-99%的告警是误报(False Positive),大量人力浪费在审核无关告警上。降低误报率的三个层面:规则优化(调整阈值/增加排除条件/场景化规则)、AI增强(用机器学习对告警评分排序/聚类分析减少重复告警)、数据丰富(整合更多数据源如企业关联图谱/负面新闻/设备信息,提供上下文判断)。

2分钟版本

AML告警处理架构

交易数据
  │
  ▼
┌──────────────────┐
│ L1: 规则引擎筛查  │  → 触发大量告警(传统:95%+误报)
│ • 大额交易(>阈值) │
│ • 频繁现金(拆分)  │
│ • 跨境高危地区    │
│ • 制裁名单命中    │
└────────┬─────────┘
         │ 告警
         ▼
┌──────────────────┐
│ L2: AI评分排序    │  → 将95%误报降至50-70%
│ • 历史告警训练    │
│ • 客户行为画像    │
│ • 图网络分析      │
│ • 异常检测模型    │
│                  │
│ 输出:             │
│ • 高风险(>0.8) → 优先人工审核       │
│ • 中风险(0.4-0.8) → 自动补充调查    │
│ • 低风险(<0.4) → 自动关闭+抽查      │
└────────┬─────────┘
         │
         ▼
┌──────────────────┐
│ L3: 调查工作台    │
│ • 客户360视图    │
│ • 关联交易可视化  │
│ • AI辅助决策建议  │
│ • 一键生成SAR    │
└──────────────────┘

降低误报率的具体方法

方法原理效果
场景化规则不同客户群用不同阈值(批发商大额交易正常)减少30%误报
行为基线与客户自身历史行为对比,而非固定阈值减少40%误报
图分析关联交易方,批量识别洗钱网络减少重复告警60%
AI排序对告警风险评分,低分自动关闭人工工作量降50%
数据丰富整合企业图谱/新闻/社交数据提供决策上下文

追问准备

追问: "监管要求不能漏报,AI自动关闭告警合规吗?"

关键是"可解释性+抽查机制"。AI自动关闭的告警必须有清晰的理由记录("该客户过去12个月类似交易50+次,均为正常业务"),并且需要定期抽查(如每月抽检5%的自动关闭告警)。监管机构一般不禁止自动化,但要求"可审计+可解释+有人工抽查"。建议初期保守——只自动关闭评分极低(<0.1)的告警,逐步扩大范围。


题目 9:CeFi vs DeFi 架构对比?

30秒版本

CeFi(中心化金融)的架构核心是"中心化账本+许可准入+监管合规",所有交易在机构内部数据库完成,高性能但单点风险。DeFi(去中心化金融)的架构核心是"分布式账本+无许可准入+智能合约",所有交易在链上完成,透明但性能受限。2025-2026趋势是两者融合——"CeDeFi"或"混合架构",链上做结算和透明性,链下做订单匹配和风控,结合两者优势。

2分钟版本

架构对比

CeFi 架构:
┌─────────────────────────────────────┐
│  用户 → 前端 → API → 业务逻辑       │
│                      │              │
│                 内部账本(MySQL)       │
│                      │              │
│                 风控/合规引擎         │
│                      │              │
│                 资金托管(HSM)         │
│                                     │
│  特点: 高性能(10万TPS) / 中心化信任  │
│        监管合规 / 用户体验好         │
│  风险: 单点故障 / 资金挪用 / 审查    │
└─────────────────────────────────────┘

DeFi 架构:
┌─────────────────────────────────────┐
│  用户 → 钱包 → RPC节点 → 智能合约    │
│                            │        │
│                    EVM (以太坊虚拟机)  │
│                            │        │
│                    区块链共识层       │
│                            │        │
│                    P2P网络层         │
│                                     │
│  特点: 去中心化 / 透明可审计          │
│        无许可 / 可组合性              │
│  风险: 合约漏洞 / Gas成本 / 性能限制  │
└─────────────────────────────────────┘

2025-2026融合趋势

根据DL News的State of DeFi 2025报告,DeFi已经从"全链上执行"演进为"混合执行"模式。Hyperliquid、Vertex等项目使用链下订单簿匹配+链上结算的混合架构,在性能上已接近CeFi水平。

融合架构 (CeDeFi):

┌─────────────────────────────────────┐
│  链下层 (Off-chain):                │
│  ├── 订单匹配引擎 (CeFi级性能)      │
│  ├── 风控/合规引擎                   │
│  ├── 用户界面/体验                   │
│  └── 身份/KYC管理                   │
│                                     │
│  链上层 (On-chain):                  │
│  ├── 资金结算 (智能合约)             │
│  ├── 资产托管 (多签/MPC)             │
│  ├── 透明性证明 (储备证明)           │
│  └── 治理 (DAO投票)                 │
│                                     │
│  优势: CeFi的性能 + DeFi的透明       │
│  代表: Hyperliquid, dYdX v4, Vertex  │
└─────────────────────────────────────┘

追问准备

追问: "DeFi如何解决合规问题?"

2025-2026最大变化是"合规DeFi"的兴起。两种路径:(1) 协议级合规——在智能合约层面嵌入合规规则(如Aave Arc只允许KYC用户参与);(2) 应用级合规——前端做KYC/地理围栏,协议本身保持无许可(如Uniswap协议无许可但官方前端屏蔽制裁地址)。欧盟MiCA已经生效,要求DeFi前端运营者承担合规责任。


题目 10:如何设计清结算系统?

30秒版本

清结算的核心是"先记账后转钱"——清算是计算各方应收应付(Who owes whom how much),结算是实际资金转移。设计要点:清算周期(T+0/T+1/实时)、轧差计算(多边轧差减少实际资金移动)、对账三步(交易对账→清算对账→资金对账)、异常处理(差错调账/退款冲正)。

2分钟版本

清结算流程

交易 → 记录 → 清算 → 结算 → 对账

  交易阶段: 记录每笔交易的参与方和金额
  ┌────────────────────────────────────┐
  │ 交易1: 买家A → 商户B  ¥100 (平台提成2%)  │
  │ 交易2: 买家C → 商户B  ¥200 (平台提成2%)  │
  │ 交易3: 买家A → 商户D  ¥300 (平台提成3%)  │
  └────────────────────────────────────┘

  清算阶段: 计算各方应收应付
  ┌────────────────────────────────────┐
  │ 商户B应收: ¥100×98% + ¥200×98% = ¥294     │
  │ 商户D应收: ¥300×97% = ¥291                  │
  │ 平台应收: ¥2 + ¥4 + ¥9 = ¥15 (佣金)        │
  └────────────────────────────────────┘

  结算阶段: 实际转账
  ┌────────────────────────────────────┐
  │ 平台结算账户 → 商户B银行账户  ¥294          │
  │ 平台结算账户 → 商户D银行账户  ¥291          │
  │ 平台结算账户 → 平台收入账户    ¥15           │
  └────────────────────────────────────┘

轧差(Netting)

无轧差: A→B ¥100, B→A ¥80, A→C ¥50, C→A ¥30
  → 4笔转账

双边轧差: A→B ¥20 (净额), A→C ¥20 (净额)
  → 2笔转账 (减少50%)

多边轧差: 更复杂场景可进一步减少
  → 通过清算中心统一计算净额

追问准备

追问: "T+0结算和T+1结算的技术差异?"

T+0(实时结算)需要:实时清算引擎(每笔交易即时计算)、实时资金通道(如银行实时支付接口)、实时余额管理(结算账户余额实时扣减)。T+1(次日结算)可以用批量方式:日终批量清算、次日一次性结算、效率更高但商户到账慢。趋势是T+0,但T+0的资金风险更大(交易退款时钱已经给商户了),需要更强的风控。


题目 11:交易系统低延迟设计?

30秒版本

交易系统的低延迟设计核心是"减少不必要的IO和等待"。关键技术:内存撮合引擎(Disruptor/LMAX模式)、无锁数据结构(CAS替代锁)、内核旁路(DPDK绕过OS网络栈)、预计算(行情数据预聚合)、协议优化(FIX/Binary Protocol替代JSON)。目标:撮合延迟<100μs,端到端延迟<1ms。

2分钟版本

低延迟技术栈

技术目标
网络DPDK/内核旁路<10μs
协议FIX/SBE(二进制)序列化<1μs
撮合单线程+Disruptor<100μs
内存对象池/预分配零GC
存储Memory-Mapped File持久化+速度
OSCPU绑定/NUMA优化减少调度

关键架构原则

  1. 单线程撮合(避免锁竞争,LMAX Disruptor模式)
  2. 事件溯源(撮合结果异步写入,不阻塞主路径)
  3. 读写分离(行情推送从撮合引擎解耦)
  4. 预热(JIT编译预热/连接池预建/缓存预加载)

追问准备

追问: "为什么用单线程而不是多线程?"

在撮合场景中,所有订单必须严格按序处理(否则价格优先/时间优先被打破)。多线程需要加锁保证顺序,锁的开销反而比单线程慢。LMAX的经验是:一个优化过的单线程每秒可处理600万消息,远超多线程+锁的方案。关键是单线程不做任何IO——日志/持久化/通知全部异步。


题目 12:如何设计信用评分模型的架构?

30秒版本

信用评分架构分为离线训练+在线推理两部分。离线:收集特征(征信/交易/行为/社交)→ 特征工程 → 模型训练(XGBoost/LightGBM)→ 模型验证(KS/AUC/PSI)→ 上线审批。在线:用户申请 → 实时特征获取(<10ms)→ 模型推理(<20ms)→ 评分卡输出(300-850分)→ 策略引擎决策。关键是模型可解释性(监管要求能解释为什么拒绝)和模型监控(PSI/CSI检测模型衰退)。

2分钟版本

信用评分架构

┌─ 离线管线 ──────────────────────────────────┐
│                                             │
│  数据源 → 特征工程 → 模型训练 → 模型验证     │
│  │         │          │          │          │
│  征信      特征选择    XGBoost    KS>0.3    │
│  交易      编码转换    LightGBM   AUC>0.7   │
│  行为      缺失处理    逻辑回归   PSI<0.1   │
│  设备      衍生特征    Neural Net            │
│                                             │
│  模型验证通过 → 人工审批 → 上线              │
└─────────────────────────────────────────────┘

┌─ 在线管线 ──────────────────────────────────┐
│                                             │
│  用户申请 → 数据获取 → 特征计算 → 模型推理   │
│  (<1ms)    (<50ms)    (<10ms)    (<20ms)   │
│                                   │         │
│                              评分输出        │
│                              (300-850)      │
│                                   │         │
│                              策略引擎        │
│                              ├── >700: 自动通过  │
│                              ├── 500-700: 人审    │
│                              └── <500: 自动拒绝   │
└─────────────────────────────────────────────┘

追问准备

追问: "模型衰退怎么检测和处理?"

用PSI(群体稳定性指标)监控——每周比较当前评分分布与上线时基线分布,PSI>0.25说明模型严重衰退需要重新训练。此外监控KS/AUC在实际审批数据上的表现。处理方式:轻度衰退→调整策略阈值;严重衰退→紧急用备选模型替换→重新训练新模型。


题目 13:资管系统的核心架构?

30秒版本

资管系统的核心是"产品→组合→交易→估值→清算"五大模块。产品管理定义基金/理财产品的规则,投资组合管理跟踪持仓和配置,交易执行连接交易所/做市商,估值系统每日计算净值(NAV),清算系统处理申赎和分红。技术上最大挑战是估值的准确性和时效性——一个基金持有数百上千个标的,每天都要精确计算到小数点后四位。

2分钟版本

资管系统核心架构

┌─────────────────────────────────────────┐
│               资管系统架构               │
├─────────────────────────────────────────┤
│                                         │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐│
│  │ 产品管理 │  │ 组合管理 │  │ 交易执行 ││
│  │ Product  │  │Portfolio │  │ Trading  ││
│  │          │  │          │  │          ││
│  │ 产品规则 │  │ 持仓跟踪 │  │ 委托管理 ││
│  │ 费率配置 │  │ 资产配置 │  │ 订单路由 ││
│  │ 合规限制 │  │ 业绩归因 │  │ 成交确认 ││
│  └─────────┘  └─────────┘  └─────────┘│
│                                         │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐│
│  │ 估值系统 │  │ 清算系统 │  │ 风控系统 ││
│  │ Valuation│  │Clearing  │  │  Risk    ││
│  │          │  │          │  │          ││
│  │ NAV计算  │  │ 申购赎回 │  │ 合规检查 ││
│  │ 行情接入 │  │ 分红处理 │  │ 限额监控 ││
│  │ 公允价值 │  │ 份额计算 │  │ 风险报告 ││
│  └─────────┘  └─────────┘  └─────────┘│
└─────────────────────────────────────────┘

追问准备

追问: "基金NAV计算为什么这么复杂?"

因为要考虑:(1) 多种资产类型的估值方法不同(股票用收盘价、债券用收益率曲线、衍生品用模型计算);(2) 外币资产需要汇率折算;(3) 应计利息、应计费用需要精确计算;(4) 分红/拆分/合并等公司行动影响持仓;(5) 某些资产没有公开市场价格需要"估值"而非"取价"。一个大型基金的NAV计算可能涉及数千个标的,每个都有不同的处理逻辑。


题目 14:监管报表自动化架构?

30秒版本

监管报表自动化的架构核心是"数据采集→规则引擎→报表生成→校验提交"四步。数据从核心系统CDC同步到报表数据仓库,规则引擎按监管模板(如PBOC 1104/Basel III/MiCA)抽取和计算数据,自动生成报表文件,质量校验通过后自动或人工审核提交。关键挑战是规则频繁变化——监管规则每年更新数十次,系统必须支持规则热更新。

2分钟版本

自动化架构

数据采集层:
  核心银行/支付/风控 → CDC → 报表数仓(T+0)

规则引擎层:
  监管规则库 (可热更新)
  ├── 数据映射规则: 源字段→报表字段
  ├── 计算规则: 加减/汇总/加权
  ├── 校验规则: 勾稽关系/阈值/完整性
  └── 版本管理: 不同时期不同规则版本

报表生成层:
  ├── 模板管理: 监管要求的格式(XML/XBRL/Excel)
  ├── 自动填充: 规则引擎计算结果→填入模板
  ├── 差异对比: 与上期报表对比,标记异常变化
  └── 审计轨迹: 每个数据点可追溯到源头

校验提交层:
  ├── 自动校验: 勾稽关系/逻辑一致性
  ├── 人工审核: 关键报表需要合规官签字
  ├── 自动提交: 通过监管API自动上传
  └── 回执处理: 接收监管反馈/修改重提

追问准备

追问: "监管规则变了,系统如何快速响应?"

核心是"规则和代码分离"——监管规则存储在规则库(如Excel/DSL/数据库),不是硬编码在程序中。规则变更流程:监管发文→合规解读→规则配置→测试验证→上线生效,全程不需要改代码。我们之前做到了规则变更3-5个工作日内上线(传统方式需要2-4周开发+测试)。


题目 15:金融系统灾备设计?

30秒版本

金融系统灾备的核心指标是RPO(可容忍的数据丢失量,金融系统要求0或接近0)和RTO(恢复时间目标,关键系统要求<30分钟)。三层灾备策略:同城双活(机房级容灾,RPO=0/RTO<1分钟)、异地灾备(城市级容灾,RPO<30秒/RTO<30分钟)、两地三中心(终极方案,同城双活+异地灾备)。技术上关键是数据同步——同步复制(RPO=0但影响性能)vs 异步复制(性能好但RPO>0)。

2分钟版本

两地三中心架构

┌────────────────────────────────────────────────┐
│                两地三中心架构                     │
├────────────────────────────────────────────────┤
│                                                │
│  城市A (生产+同城):                              │
│  ┌──────────┐    ┌──────────┐                  │
│  │ 数据中心1 │←──→│ 数据中心2 │  同步复制        │
│  │ (生产)    │    │ (同城灾备)│  RPO=0, <3km    │
│  │ 50%流量   │    │ 50%流量   │  RTO<1min       │
│  └──────────┘    └──────────┘                  │
│       │                │                        │
│       └────────┬───────┘                        │
│                │ 异步复制 (延迟30-100ms)          │
│                ▼                                │
│  城市B (异地):                                   │
│  ┌──────────────────┐                           │
│  │   数据中心3        │  异地灾备                │
│  │   (异地灾备)       │  RPO<30s, >300km        │
│  │   0%流量(待命)     │  RTO<30min              │
│  └──────────────────┘                           │
│                                                │
│  故障场景:                                       │
│  DC1故障 → DC2接管(秒级),无感切换              │
│  城市A故障 → DC3接管(30min),丢失<30s数据       │
└────────────────────────────────────────────────┘

灾备演练

  • 桌面演练:每月一次(纸上流程走查)
  • 技术演练:每季度一次(实际切换到灾备,非业务时间)
  • 全量演练:每年一次(模拟真实灾难,包含业务连续性计划)
  • 关键指标:切换时间、数据一致性、业务恢复完整性

追问准备

追问: "同城双活如何实现数据零丢失?"

两种方案:(1) 同步复制——写操作必须两个数据中心都确认才返回成功,RPO=0但延迟+2-3ms;(2) Raft/Paxos共识——分布式数据库(如TiDB/CockroachDB)在3个副本上达成共识,自动容忍1个副本故障。金融系统通常用方案1(MySQL同步复制+MHA切换)或方案2(NewSQL数据库)。权衡:同步复制延迟增加对交易型系统影响<5%,对金融场景可接受。


面试技巧总结

金融架构面试特殊要求

维度说明
合规意识任何方案都要考虑监管要求
数字敏感金额精度、性能指标、可用性SLA要精确
风险意识总是考虑"出错了怎么办"
行业术语SWIFT/FIX/Basel/AML等术语要准确使用
实战案例有真实金融项目经验是最大加分项

15题速查表

#题目核心关键词
1多币种记账借贷平衡 / 最小单位 / 汇率冻结
2支付三不幂等 / 对账 / 状态机
3实时风控预计算 / 规则+AI / <50ms
4日切双会计日期 / 分片滚动 / 幂等恢复
5跨境支付多层中介 / 预清算 / 稳定币
6自研vs购买四维矩阵 / TCO / 云原生核心
7开放银行OAuth+FAPI / mTLS / 准入控制
8AML误报AI评分 / 图分析 / 场景化规则
9CeFi vs DeFi中心vs分布 / 混合架构 / 合规
10清结算清算+结算 / 轧差 / 对账
11低延迟交易单线程 / 内核旁路 / Disruptor
12信用评分离线训练+在线推理 / PSI监控
13资管系统产品→组合→交易→估值→清算
14监管报表规则引擎 / 热更新 / 可追溯
15灾备设计RPO/RTO / 两地三中心 / 演练

今日总结

关键收获

  1. 金融架构的核心是"不出错"——不多扣不少扣不重扣、不超卖不漏报不丢数据
  2. 幂等性是金融系统的生命线——网络抖动/超时重试是常态,系统必须容忍重复请求
  3. 对账是最终防线——再好的实时设计也需要对账兜底
  4. 合规不是可选项——每个架构决策都要考虑监管影响
  5. CeFi和DeFi正在融合——未来的金融架构师需要理解两个世界

明日预告: Day 118 - 零售领域面试专题,15道精选零售架构面试题,涵盖秒杀、库存、订单、促销、搜推、全渠道等核心主题。