
1) 【一句话结论】
采用Kubernetes微服务架构,通过StatefulSet保障有状态服务(如数据库)的高可用与数据持久化,结合HPA实现弹性扩缩容,并利用Saga模式处理分布式事务,确保高并发下的系统稳定与数据一致性。
2) 【原理/概念讲解】
老师讲解:
volumeClaimTemplates绑定存储类(如NFS或Ceph),确保Pod重启或故障转移后数据不丢失。类比“固定座位的教室”,每个学生(Pod)有唯一座位号(Pod ID),数据(座位上的书本)不会因学生换座位而丢失,适合数据库等需要数据持久化的服务。3) 【对比与适用场景】
4) 【示例】
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: accounting-db
spec:
serviceName: accounting-db
replicas: 3
selector:
matchLabels:
app: accounting-db
template:
metadata:
labels:
app: accounting-db
spec:
containers:
- name: db
image: mysql:5.7
ports:
- containerPort: 3306
volumeMounts:
- name: db-storage
mountPath: /var/lib/mysql
volumeClaimTemplates:
- metadata:
name: db-storage
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "nfs-storage" # 假设使用NFS存储类
resources:
requests:
storage: 10Gi
def process_order(order_id):
# 1. 提交订单
order_service.submit(order_id)
# 2. 更新库存
stock_service.update(order_id, -1) # 减库存
if stock_service.failed(): # 库存不足或更新失败
# 3. 补偿:回滚订单
order_service.rollback(order_id)
# 补偿失败(如库存服务宕机),启动二次补偿或人工干预
if stock_service.is_unavailable():
manual_compensation(order_id) # 人工处理
return "订单失败,库存不足"
# 4. 扣款(支付服务)
payment_service.charge(order_id)
return "订单处理成功"
5) 【面试口播版答案】
“面试官您好,针对高并发会计系统,我设计的云原生方案核心是通过Kubernetes的微服务架构,结合StatefulSet、HPA和Saga模式,实现高可用、弹性扩展与数据一致。首先,高可用方面,用StatefulSet部署数据库(如MySQL),3个副本+NFS持久化存储,单节点故障时服务不中断;交易服务用Deployment多副本,自动重启保障可用。弹性扩展方面,HPA根据CPU利用率(70%)和请求延迟(超过200ms时扩容)调整Pod数量,峰值时扩容,低谷时缩减。数据一致性方面,订单-库存-支付采用Saga模式:先提交订单,再更新库存,库存失败则启动补偿事务回滚订单,补偿失败时启动二次补偿或人工干预,保证最终一致。通过监控告警(如Prometheus+Alertmanager)实时监控指标,确保系统稳定。”
6) 【追问清单】
7) 【常见坑/雷区】