高并发场景的处理方案
- 做好基础性能优化,如静态资源的cdn部署,机器人请求的过滤,数据库的分库分表、读写分离等。
- 针对具体场景做高并发处理,如网上商城的抢购场景,为高并发做产品流程的规划,如抢购场景中的订单下单环节去承接更大的压力,让支付环节往后;再比如抢购期间的退单、退款等服务延迟处理。
- 将预计的热数据放到缓存中,系统应该设计有多层的缓存,配合队列中间件等操作,应尽量避免io性能低的DB直接与高并发请求直连。
- 云服务商的集群弹性伸缩,如果单机能做的优化都做了,应该及时考虑机器性能的扩展和集群的横向扩展,现代云服务商都有很优秀的弹性能力。
- 团队针对已实施的方案要有完备的测试,不可直接上线。
- 为异常情况要设计备用方案,按测试结果设置限流额度,设计降级熔断措施,保障系统其他模块不能全部崩溃。
- 如果实际场景中现在的高并发实现方案还是不能应对,应该考虑技术栈的及时调整,如逻辑层的PHP换成GO、加入ElasticSearch、MongoDB等对分布式有更好支持的数据库去承载相应的操作。