1
需求澄清与约束分析
明确功能需求和非功能需求(性能、可用性、一致性、延迟等),确定系统规模(用户量、QPS、数据量),识别关键约束和技术选型限制。
2
高层架构设计
绘制系统架构图,确定核心组件和模块,定义组件间通信方式(同步/异步、REST/gRPC/消息队列),选择合适的架构风格(单体/微服务/事件驱动)。
3
数据库设计
选择数据库类型(关系型/NoSQL/时序/图),设计数据模型和表结构,确定索引策略,设计分库分表方案,考虑数据一致性和事务管理。
4
API设计
定义API接口规范(RESTful/GraphQL/gRPC),设计请求/响应格式,实现API版本管理,设计API网关和认证授权,考虑限流、熔断、降级策略。
5
性能优化与扩展性设计
设计缓存策略(多级缓存、缓存穿透/击穿/雪崩防护),实现负载均衡,设计读写分离和主从复制,考虑水平扩展和垂直扩展,实现异步处理和消息队列。
6
可靠性与容错设计
设计高可用架构(多可用区、多地域部署),实现故障检测和自动恢复,设计数据备份和灾难恢复,实现幂等性和重试机制,考虑分布式一致性(CAP理论、BASE理论)。
7
安全设计
实现身份认证和权限控制,设计数据加密(传输加密、存储加密),防止常见安全漏洞(SQL注入、XSS、CSRF),实现审计日志和安全监控,考虑隐私保护和合规要求。
8
监控与运维设计
设计监控体系(指标监控、日志监控、链路追踪),实现告警机制和应急响应,设计CI/CD流水线,实现自动化部署和回滚,考虑容量规划和性能测试。