ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

10. 软件设计架构-性能优化

10. 软件设计架构-性能优化 文章目录前言一、概览1. 工具图谱二、百万并发场景1. 概述2. 数据拆分3. 服务限流4. 服务熔断5. 服务降级前言‌一、概览1. 工具图谱‌二、百万并发场景1. 概述在百万并发场景如电商秒杀、社交直播或在线支付高峰这些都是典型的高并发业务。高负载扩展业务量比如在百万QPS下高负载服务如搜索/推荐独立扩容至100实例。拆分比如微服务架构的服务拆分。将传统单体应用、或粗粒度服务拆分为粒度适当的微服务单元。这不是简单“切块”而是基于业务边界、自治性和弹性扩展的设计实践。通过适当粒度拆分系统能实现独立部署、针对性扩展和高可用避免单点瓶颈放大为系统级崩溃。业务边界优先按DDD领域驱动设计拆分确保服务间交互最小化。数据自治每个服务拥有独立数据库避免共享锁竞争。并发读写分离后单服务TPSTransactions Per Second从1万升至10万。2. 数据拆分分库分表的核心是水平拆分Horizontal Sharding将单表的数据行按规则分散存储。不同于垂直拆分按字段切水平拆分针对大数据量和高TPS场景。分库将数据分散到多个物理数据库实例如MySQL主库1、2、3按业务域或哈希路由。分表单库内将单表拆为多个逻辑表如order_0、order_1按行切分。分片键Shard Key路由依据如用户ID、订单时间确保数据均匀分布。路由机制SQL执行时根据分片键计算目标库/表e.g., user_id % 4 → 库0表0。3. 服务限流限流是在入口或关键服务处控制并发请求速率防止突发流量耗尽资源。常见限流策略包括固定窗口、滑动窗口、令牌桶与漏桶算法。实践中可在API网关、负载均衡层或服务端点实现全局限流、用户维度限流或接口维度限流。结合降级与队列化将超载请求排入异步队列可缓解突发流量。限流还应支持动态调整与熔断联动并通过监控与告警及时反馈系统压力状况。4. 服务熔断熔断机制用于在下游服务异常或延迟增大时快速切断调用避免故障蔓延并为下游争取恢复时间。常采用基于错误率或响应时间的窗口统计当命中阈值后进入熔断拒绝或短路并在熔断期后尝试半开探测。熔断器设计需注意阈值设置、冷却时长与探测策略结合熔断日志与告警有助于快速定位问题。与限流配合可在流量高峰或故障期间协同保护系统稳定性。5. 服务降级降级是主动降低功能质量以保核心业务可用的策略。常见降级方式包括返回缓存数据、只保留核心功能路径、关闭非必要功能例如推荐、统计或返回简化结果。实施降级需明确业务优先级、设计可配置的开关与回退策略并保证降级动作是可监控与可回滚的。结合灰度发布可以在小范围内验证降级效果避免大面积影响用户体验。本文的引用仅限自我学习如有侵权请联系作者删除。参考知识性能优化专题如何支撑100万QPS高并发(5大架构方案)
返回列表