# 部署架构设计

> 同城双活方案、五类接入通道、中间件跨中心部署与六大组件高可用架构。

---

LLMS 索引： [llms.txt](/llms.txt)

---

依据《新一代智慧信贷平台-技术架构设计》第四章（部署架构）提炼。整体采用**同城双活**方案：双中心两个虚拟机集群（业务集群 1/2），网络互通，通过负载控制向两个业务集群分发请求。

## 接入通道 {#access}

| 通道 | 链路 |
|---|---|
| PC 端 | 国密系统 + DNS 解析 → F5 硬负载 → 两中心 Nginx 节点 → 网关（Nginx 到网关亦经 F5） |
| 个人移动信贷（PAD） | 按接入运营商分流至两中心 → mPaas 平台 → 移动前置（多实例，经 F5 负载）→ 网关 |
| 小程序 / 手机银行 | 行内现有系统经运营商网络接入，ESB 经负载均衡 → 两中心 ESB 边车 → 信贷网关 → 微服务 |
| 外围系统 | 统一经 ESB → 硬负载 → 两中心 ESB 边车 → 信贷网关 → 微服务 |
| 批量调度 | 管理端无状态多节点多活（负载均衡分发），调度端多节点热备（自动选主） |

## 中间件部署 {#middleware}

- **Nacos 跨中心部署**：以 clusterName 区分（生产中心 A_ZONE / 灾备中心 B_ZONE），依赖 spring-cloud-starter-loadbalancer。正常情况各中心服务优先使用本中心 Nacos，两中心间同步复制；某一中心 Nacos 异常时服务访问另一中心。
- **Redis 跨中心部署**：虚拟机部署集群，一主三从五哨兵。跨中心的原因：登录 token 需全局共享（请求随机分发到两中心，若各自部署 Redis 会鉴权失败）；数据字典、风险拦截信息等缓存需保持两中心一致。
- **RocketMQ 中心级部署**：每个中心各部署一套集群，各中心独立生产和消费。
- **管控平台**：整体部署一套，组件跨中心部署，统一管理两个集群，实现跨中心数据整合与监控。

## 高可用方案 {#ha}

两个中心为"生产中心"和"灾备中心"，每个中心部署完整的业务集群，任一中心完全不可用时另一中心可继续支持业务全流程执行。

**注册中心双中心**：Nacos 跨中心 3 节点集群（生产 3 + 灾备 2 布点）共用一套集群、共享数据库；服务启动注册并同步各节点，消费者本地缓存服务列表；默认中心内路由，中心内无服务才跨中心访问；通过域名就近解析。

<iframe src="/credit/arch/11-ha-nacos.html" title="高可用架构图" loading="lazy" style="width:100%;height:560px;border:1px solid #e5e7eb;border-radius:8px;"></iframe>

<a href="/credit/arch/11-ha-nacos.html" target="_blank">全屏打开 ↗</a>

**缓存双中心**：哨兵模式——生产中心 Master + Slave-1 + Sentinel 1/2/3，灾备中心 Sentinel 4/5 + Slave-2/3。容灾语义分三级：中心内 Master 宕机，Sentinel 自动故障转移（Slave-1 升主，业务短时波动）；生产中心整体宕机，剩余 2 哨兵无法自动选主，需人工执行 `SENTINEL FAILOVER mymaster` 将灾备 Slave 提升为主；生产中心恢复时先启 3 个哨兵节点、组网正常后再启 Redis（严禁先启 Redis 后启哨兵），数据同步完成后业务低峰期手动回切（replica-priority 控制）。

<iframe src="/credit/arch/12-ha-redis.html" title="高可用架构图" loading="lazy" style="width:100%;height:560px;border:1px solid #e5e7eb;border-radius:8px;"></iframe>

<a href="/credit/arch/12-ha-redis.html" target="_blank">全屏打开 ↗</a>

**消息队列双中心**：每中心 7 台服务器——3 NameServer（内嵌 Controller）+ Broker 2 主 2 从（2M2S），主从同步双写保障消息不丢，基于 Controller 模式（5.x Raft）自动故障切换；任一中心主节点宕机，消息不丢失、服务自动切换。双 Master 多队列负载均衡：队列数 ≥ 消费者实例数，生产者均衡发送、消费者平均分配队列。宇信分布式消息组件提供消息持久化、异步发送与补偿、消费幂等。

<iframe src="/credit/arch/13-ha-rocketmq.html" title="高可用架构图" loading="lazy" style="width:100%;height:560px;border:1px solid #e5e7eb;border-radius:8px;"></iframe>

<a href="/credit/arch/13-ha-rocketmq.html" target="_blank">全屏打开 ↗</a>

**应用双中心**：两中心部署完全一样的集群，注册到统一 Nacos（集群标志识别数据中心），每中心可独立完成信贷全流程；中心内就近路由负载均衡。每个应用至少 2 节点避免单点，压力大的服务（授信作业中心、授信执行中心）按压测适当加节点。服务间 Feign 调用 + loadbalancer 负载；网关经负载设备对外；行内系统经 ESB 边车负载转发两中心网关。

<iframe src="/credit/arch/14-ha-app.html" title="高可用架构图" loading="lazy" style="width:100%;height:560px;border:1px solid #e5e7eb;border-radius:8px;"></iframe>

<a href="/credit/arch/14-ha-app.html" target="_blank">全屏打开 ↗</a>

**批量双中心**：USE 调度两中心部署一套集群——管理端两中心集群部署（token 不共享，需会话保持或灾备侧设为备节点）；调度端主从模式（基于数据库选主，主派发任务，主故障从自动切换）；执行节点即批处理服务多实例负载均衡。分布：每中心 1 管理端 + 1 调度引擎 + 6 个批量服务。

<iframe src="/credit/arch/15-ha-batch.html" title="高可用架构图" loading="lazy" style="width:100%;height:560px;border:1px solid #e5e7eb;border-radius:8px;"></iframe>

<a href="/credit/arch/15-ha-batch.html" target="_blank">全屏打开 ↗</a>

**运维管理双中心**：信贷运维管控平台整体一套、组件跨中心。主中心（A 机房）：管控前后端、Grafana、Prometheus+Proxy、2 AlertManager；同城中心（B 机房）：管控前后端、Grafana、Prometheus+Proxy、1 AlertManager。Grafana 跨中心共享数据库配置加负载均衡，AlertManager 集群处理 Prometheus 告警。业务微服务集成链路跟踪 agent 与 FileBeat 日志收集对接行内平台；监控分工——行内监控告警平台负责主机/中间件/数据库，信贷管控平台负责业务微服务。

## 环境清单 {#environments}

环境清单维护于《智慧信贷二期应用开发实施项目架构设计说明书 V0.3.xlsx》，待应用架构与部署架构确定后同步修订。

## 部署架构图 {#diagram}

**官方部署架构总览（复刻版）**：

![智慧信贷部署架构总览图](deployment-topology.png)

[下载矢量版 SVG](deployment-topology.svg)

**提炼版交互图**（拓扑关系可缩放追踪）：

<iframe src="/credit/arch/08-deployment-architecture.html" title="部署架构图" loading="lazy" style="width:100%;height:700px;border:1px solid #e5e7eb;border-radius:8px;"></iframe>

<a href="/credit/arch/08-deployment-architecture.html" target="_blank">全屏打开 ↗</a>

---

反链：

- [部署架构](/docs/credit/deployment/)
