跳转到主要内容

六边形架构在银行核心系统的落地

用端口与适配器把核心业务从数据库、渠道和三方系统里解放出来,让银行核心真正可测、可替换、可演进。

银行核心最痛的不是业务复杂,而是业务逻辑和周边技术死死绑在一起:换连接池要改核心,接新渠道要动账务,单测要起一整套中间件。六边形架构(Ports & Adapters)给出干净解法。

核心、端口与适配器

  • 领域核心:纯业务规则,不依赖任何框架、数据库或 HTTP 客户端。
  • 端口:核心暴露(入站)和需要(出站)的接口,用 Java 接口表达意图。
  • 适配器:把端口接到具体技术——REST 控制器是入站适配器,JDBC 仓储是出站适配器。
public interface AccountRepository {   // 端口:只定义要什么
    Account load(AccountId id);
    void save(Account account);
}
public class JdbcAccountRepository implements AccountRepository { /* 技术留在外围 */ }

判断架构是否干净的一条硬标准:删掉数据库、MQ、Web 框架,核心业务代码还能原封不动地跑并被测。

在银行核心里怎么切

核心账务、计息、限额放在中心;大小额网关、CBS 接口、短信、风控回调全做成外围适配器。监管规则变了只动核心,接新清算通道只加一个适配器。

层次内容依赖框架
领域核心账务、计息、限额
应用层用例编排
适配层REST/JDBC/MQ

收益与代价

收益是可单测、可独立部署、渠道可替换;代价是初期抽象成本与团队纪律。在银行这种长生命周期系统里,核心被技术债锁死的代价远高于前期投入。

架构不是墙上的图,而是写在依赖箭头里的纪律。六边形的价值,是让「技术变了业务不动」成为默认结果。