原则:
1. 尽可能将请求拦截在系统上游:
2. 读多写少,多使用缓存
• 浏览器和app:作限速,限制用户在X秒以内只能提交一次请求(好比虽然你在疯狂的摇微信,但其实x秒后才向后端发起一次请求)
• 站点层:按照uid作限速,作页面缓存,这时用uid,一个uid5秒只准透过一个请求。这样就能拦住99%的for循环请求。
• 服务层:按照业务作写请求队列控制流量(每一个提供服务的服务器各一个队列)(每次只透有限的写请求去数据层,以下订单,作支付这样的写业务)。3k张火车票,只透3k个下单去db
• 数据层:这时已经没有多少压力了。所有透到数据库,100w个下单,0个成功,请求有效率是0%;透3k个请求到数据,所有成功,请求有效率100%数据库