zoukankan      html  css  js  c++  java
  • 提高QPS

    常用方案

    1.异步化+MQ
    即非阻塞,化繁为简,拿到你需要处理的资源后尽快回复。适用于事务处理场景,且无需对上游返回数据场景。

    2.无锁设计
    本质上是要降低锁冲突,基于数据版本的乐观锁 有效的减少了互斥资源的范围,优点不言而喻。

    3.batch处理
    批量查询、批量commit,基本上操作慢速设备或者不能并行化的对象或者资源时,使用batch 永远是最好的手段。

    4.副本设计
    使用cache、静态化等手段,其核心思想在于 提前将结果准备好,实现的难点数据的更新。

    5.集群+负载均衡
    多个相同功能的节点均摊请求压力

    6、系统拆分、分库分表、垂直拆分+水平拆分
    分库:减少同库的连接数量,减少同库cpu、内存的负载
    分表:减少sql时间

    QPS(TPS)= 并发数/平均响应时间

    要提高qps,我们必须做2个方面努力

    1、增加并发数

    1.比如增加tomcat并发的线程数,开喝服务器性能匹配的线程数,可以更多满足服务请求。
    2.增加数据库的连接数,预建立合适数量的TCP连接数
    3.后端服务尽量无状态话,可以更好支持横向扩容,满足更大流量要求
    4.调用链路上的各个系统和服务尽量不要单点,要从头到尾都是能力对等的,不能让其中某一点成为瓶颈。
    5.RPC调用的尽量使用线程池,预先建立合适的连接数。

    2、减少平均响应时间

    1.请求尽量越前结束,越好,这样压力就不要穿透到后面的系统上,可以在各个层上加上缓存
    2.流量消峰。放行适当的流量,处理不了的请求直接返回错误或者其他提示。和水坝道理很类似
    3.减少调用链
    4.优化程序
    5.减少网络开销,适当使用长连接
    6.优化数据库,建立索引

  • 相关阅读:
    18.11.5 考试总结
    18.11.2 考试总结
    18.11.1 考试总结
    洛谷 P1084 疫情控制 noip2013D2T3
    18.10.31 考试总结
    洛谷P1312 Mayan游戏 noip2011D1T3
    18.10.30 考试总结
    【考前复习_各类模板之补充】
    NOIP2016之反面教材提供
    【最后的抒情】【离NOIP还有9个小时】
  • 原文地址:https://www.cnblogs.com/jis121/p/11239102.html
Copyright © 2011-2022 走看看