设计高并发架构应以弹性扩展、跨可用区冗余与低延迟为目标。建议使用AWS的Elastic Load Balancer(ELB),在新加坡(ap-southeast-1)区域部署
1) 使用Application Load Balancer(ALB)做七层路由以处理HTTP/HTTPS;2) 配置多个Target Group按业务流量分流;3) 将ALB分布在至少两个可用区以实现高可用性。
若为TCP/UDP密集型服务,可考虑Network Load Balancer(NLB)以获得更好的连接性能和静态IP支持。
自动伸缩应结合基于指标的扩缩与基于预测的策略。常用指标包括CPU、内存(自定义CloudWatch)、请求速率(RPS)与响应时间。
1) 定义最小/最大/期望实例数;2) 配置CloudWatch报警触发Scale Out/Scale In;3) 使用Target Tracking Policy(例如将平均CPU目标设为40%)以平滑扩缩。
结合Scheduled Scaling(预置时间窗扩容)和Predictive Scaling来应对已知的流量峰值,减少冷启动导致的性能缺口。
对于需要会话粘滞的应用,可使用ALB的Sticky Sessions或将会话状态外部化到Redis/Memcached等分布式会话存储来实现无状态后端。
设置合适的健康检查路径、超时和间隔(例如30s间隔、5s超时)并使用多次连续失败阈值以避免误判。对复杂服务可配置自定义健康探针。
避免把会话粘滞作为扩容替代方案。将状态外置能提高伸缩效率,降低单点宕机风险。
采用按需与预留/节省计划混合、使用Spot实例处理可中断任务,并通过弹性伸缩将闲置资源降到最低以优化成本。
1) 使用更高规格的实例处理长连接或高IO需求;2) 利用缓存(CloudFront、ElastiCache)减少后端压力;3) 使用连接复用和异步处理降低延迟。
持续监控CloudWatch指标与成本中心报表,定期调整实例类型、ALB规则与伸缩阈值以获得最佳的性价比。
在新加坡区域内部署跨可用区的ASG和ALB可以抵御单AZ故障。对于更高等级的容灾,需要实现多区域部署(如新加坡与悉尼或东京)。
使用Route 53的加权路由、延迟路由或基于健康的failover机制,将流量在区域间分配或切换,并结合全球加速(Global Accelerator)以降低跨区域延迟。
跨区域时应明确数据复制策略(同步/异步)、数据库读写分离与最终一致性模型,使用如RDS跨区复制或DynamoDB全球表来保证业务连续性。