基于当前源码与日志方案(见 Log.md)并结合业务架构撰写,面向 ACK-Pro + MSE + ASM(Istio)统一落地。
istiod 控制面,Sidecar 注入实现 mTLS、灰度、熔断、可观测性flowchart LR
User[用户/客户端] --> ALB[ALB 负载均衡]
ALB --> GW[API Gateway]
subgraph Mesh[ASM/Istio Mesh]
GW -->|Nacos 注册/发现| Nacos[(Nacos/MSE)]
GW --> Dubbo[Dubbo RPC]
Dubbo --> SvcA[订单中心]
Dubbo --> SvcB[支付中心]
Dubbo --> SvcC[商户中心]
Dubbo --> SvcD[营销中心]
Dubbo --> SvcE[网关搜索]
end
subgraph Data[数据与中间件]
Redis[(Redis)]
MySQL[(MySQL)]
MQ[(RabbitMQ)]
Mongo[(MongoDB)]
Seata[(Seata)]
end
SvcA--读写-->MySQL
SvcA--缓存-->Redis
SvcA--消息-->MQ
SvcB--读写-->MySQL
SvcB--缓存-->Redis
SvcB--消息-->MQ
SvcC--读写-->Mongo
SvcC--缓存-->Redis
SvcA--事务协调-->Seata
subgraph Ops[运维调度]
Cron[K8s CronJob]
Istiod[istiod 控制面]
end
Cron --> SvcA
Cron --> SvcB
Istiod -.sidecar注入.-> SvcA
Istiod -.mTLS/路由.-> SvcB
uri_group 与服务维度flowchart LR
subgraph App[应用微服务]
Log[Logback Async JSON]
Act[Spring Actuator/Prometheus]
end
Log --> Vec[Vector Agent]
Vec --> Loki[Loki 日志]
Vec --> Prom[Prometheus 指标]
Prom --> Graf[Grafana 仪表盘/告警]
Act --> Prom
note[说明: 统一在 Filter/MDC 输出 JSON, Vector 解析为 Loki 标签与 Prom 指标]
traceId/uri/uri_group/event_class/duration/status。现网 Log.md 已提供 Vector/Loki/Prometheus 的落地配置与性能对标:本方案延迟 <2s,CPU 8-15%,内存 80-100MB(对比全文)。
标准 HPA(CPU 指标示例): ```yaml apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: order-center-hpa namespace: shop-recycle spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: order-center minReplicas: 2 maxReplicas: 20 metrics:
使用 Prometheus Adapter 的“外部指标”示例(按每 Pod QPS): ```yaml apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: order-center-hpa-qps namespace: shop-recycle spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: order-center minReplicas: 2 maxReplicas: 50 metrics:
> 需接入 Prometheus Adapter 暴露自定义指标至external.metrics.k8s.io`。AHPA(概念示例):在 ACK 中以 CRD 形式定义,允许直接引用 PromQL 表达式与更丰富的策略(请按实际 ACK/AHPA 文档配置 CRD 字段)。
minReplicas/maxReplicas,并结合队列限流与缓存保护防止雪崩stabilizationWindowSeconds 合理设置,避免抖动;订单高峰前手动加热说明:价格以 2026 年估算为例,需以阿里云当期定价为准;以下为模板占位,请用实际规格(带宽/实例数/存储量)替换。
| 服务 | 计费方式(示例) | 估算月价(CNY) | 获得能力 | 备注 |
|---|---|---|---|---|
| ALB | 按带宽/实例数 | TBD | 北向入口、七层负载、WAF | 与网关联动 |
| MSE(Nacos/Dubbo) | 实例规格/连接数 | TBD | 注册发现、治理、限流 | 托管免自运维 |
| RabbitMQ(云) | 实例规格/存储 | TBD | 队列解耦、异步削峰 | 与订单/支付协作 |
| Redis(云) | 内存容量/连接数 | TBD | 高速缓存、会话 | AOF/备份成本 |
| MongoDB(云) | 存储容量/IOPS | TBD | 文档型存储 | 索引与备份 |
| ASM(Istio) | 节点数/功能套餐 | TBD | mTLS、灰度流量、Observability | 提升治理能力 |
| HPA/AHPA 隐形成本 | 节点资源/冷启动 | 0-小幅 | 额外副本/预热资源 | 需容量冗余 |
| ACK-Pro 托管费 | 固定 | 35 | ACK 集群托管 | 用户提供数据 |
建议:成本测算以 3 台 ECS(现网)+ ACK-Pro 托管起步,自建日志/指标存储,评估云代管与自建混合比例。
istiod)1) 基线准备(Week 0-1)
2) 网关与服务治理(Week 2)
3) 数据层迁移(Week 3)
4) 弹性与高峰(Week 4)
5) 上线与稳定(Week 5)
bash
helm rollback vector -n logging
kubectl rollout undo deployment/order-center -n shop-recycle
shop-recycle-* 目录代表内部服务(订单/支付/商户/营销/网关/统计等),迁移优先级按业务关键度排序方案一(Node 无安装):
# 在项目根目录执行
npx md-to-pdf .\docs\云原生迁移方案-基础设施篇.md --config-file .md-to-pdf.json
方案二(Pandoc):
winget install Pandoc.Pandoc
# 若需 LaTeX:winget install MiKTeX.MiKTeX
pandoc .\docs\云原生迁移方案-基础设施篇.md -o .\docs\云原生迁移方案-基础设施篇.pdf
如需我生成 md-to-pdf 的配置文件或直接导出 PDF,请告知,我可补充
md-to-pdf.json或执行转换。