zoukankan      html  css  js  c++  java
  • 数据库高并发解决方案(三)图说

    QPS:即服务器每秒request请求或者查询的数量,在互联网领域,值每秒的响应response的请求数

    常用的性能测试工具 :ab、wrk、http_load、web bench 、 siege、Apache jmeter

    1. qps达到极限 : qps50 :小型网站,一般的服务器就可以应付;
    2. qps达到100:假设关系型数据库的每次请求在0.01秒内完成,假设单页面只有一个sql查询,那么100qps意味着1秒钟完成100次请求,但是此时我们并不能保证数据库查询能完成100次,所以达到极限,优化方案:数据库缓存层、数据库负载均衡。
    3. qps达到800:假设我们使用的百兆带宽,意味着网站出口的实际带宽是8M左右,假设每个页面只有10k,这个并发条件下,百兆的带宽已经吃完。方案:cdn加速、负载均衡。
    4. qps达到1000, 假设使用memcache 缓存数据库查询,每个页面对memcache的请求远大于对db的请求,memcahe的悲观并发数在2W左右,但有可能在这之前内网带宽已经吃光,表现出不稳定。方案:静态html缓存。
    5. qps达到2000 在这个级别下 文件系统访问锁都成为灾难。方案:做业务分离,分布式存储。

    优化方案:

    1. web服务器优化 :负载均衡 
    2. 流量优化:防盗链处理 将恶意请求屏蔽,
    3. 前端优化:减少http请求、添加异步请求、启用浏览器缓存和文件压缩gzip、cdn加速、建立独立的图片服务器、
    4. 服务端优化:  页面静态化、并发处理、redis队列处理、
    5. 数据库优化: 数据库缓存、分库分表、分区操作 、读写分离、负载均衡

    WEB服务器负债均衡:

    1. 七层负载均衡实现: 基于url等应用层信息的负载均衡;代表 nginx的proxy是他一个很强大的功能,实现了7层负载均衡。功能强大、性能卓越、运行稳定, 配置灵活简单、能自动剔除工作不正常的后端服务器、上传文件使用异步模式、支持多种分配策略。
    2. nginx负载均衡策略:内置策略:iphash、加权轮询, 
    3. 扩展策略:fair策略:根据后端服务器的响应时间判断负载情况,从中选出负载最轻的机器进行分流。
    4. 通用hash:通用hash比较简单,可以以nginx内置变量为key进行hash、
    5. 一致性hash:采用nginx内置的一致性hash环,支持memcache。

    nginx配置:

    1. 四层负载均衡实现: 通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
    2. LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统;实现服务器负载均衡有三种方式NAT、DR、和TUN。
  • 相关阅读:
    Eclipse+Maven整合开发Java项目(二)➣webapp3.0以上的Maven项目
    Eclipse+Maven整合开发Java项目(一)➣Maven基础环境配置
    JAVA-ORM框架整理➣Mybatis操作MySQL
    Spring MVC基础知识整理➣Spring+SpringMVC+Hibernate整合操作数据库
    Spring MVC基础知识整理➣拦截器和自定义注解
    Spring MVC基础知识整理➣国际化和异常处理
    Spring MVC基础知识整理➣数据校验与格式化
    Spring MVC基础知识整理➣View与Controller数据交互
    面向过程,面向对象,函数式对同一个问题的思考方式
    分享一个简单程序(webApi+castle+Automapper+Ef+angular)
  • 原文地址:https://www.cnblogs.com/wanglijun/p/10896493.html
Copyright © 2011-2022 走看看