zoukankan      html  css  js  c++  java
  • 高并发一些处理办法

    处理高并发问题的一些方式
    1.拆表:大表拆小表(垂直拆,水平拆;分表,分区partition,分片sharding),可以在应用层实现,也可以在数据库层面实现一部分;提高系统性能。
    2.分库:把表放到不同的数据库,这也是分布式数据库的基础;提高系统性能。
    3.分布式:不同的数据库放到不同的服务器;提高系统性能。
    4.集群:使用数据库复制等技术组建集群,实现读写分离、备份等;提高系统性能、可用性。
    5.缓存:对常用的数据进行缓存。提高系统性能。
    6.备份:主从库,快照,热备,异地备份等;提高系统可用性
    架构:LVS+keepalived+Java/PHP/Python+mysql/mongodb+memcached/redis+centos+nginx/apache+sphinx/solr+Gearman+Munin+TFS

    优化的顺序是:业务、程序、部署。

    从业务上要处理好应用超出负荷时的处理,比如:目前在线人过多请稍候访问之类的提示;减少图片、附件等上传的大小限制,甚至临时取消附件功能,减少带宽和存储空间的压力;分页只支持固定的分页。

    程序上包括应用的优化和数据库的优化。有可能的话尽量使用第三方的服务减少服务器自身的压力。首页等访问量大的页面静态化,减少数据库的压力,批量的实务代替时时的处理。数据库要对业务表的锁进行细化处理,读写分离。

    部署上要数据库一台,另外两台负载均衡。使用cdn尽量把流量分离出去。增加防ddos攻击,跳高防护的等级,减少网络攻击对普通用户的影响。

    并发中的性能问题
    1,有钱就堆设备
    2,充分利用缓存(配合php的黑魔法fastcgi_finish_request非常好用)

    并发中数据一致性问题
    1,使用队列
    2,必要的自动复查
    3,数据库锁的合理利用

    负载均衡
    读写分离
    缓存,分布式缓存

    最基本的各种配置文件的优化是有必要的.

    程序方面:数据文件缓存,内存缓存,静态缓存,opcode缓存等等

    数据库方面:设计合适的表结构,表缓存优化,主从动静分离,集群,冷热数据分离等....

  • 相关阅读:
    Fiddler抓包2-只抓APP的请求【转载】
    Fiddler抓包1-抓firefox上https请求【转载】
    python笔记-用python解决小学生数学题【转载】
    python笔记-冒泡排序【转载】
    python爬虫搜片利器fmovice【转载】
    httpd: Could not reliably determine the server's fully qualified domain name, using ::1 for ServerName
    linux_硬件信息
    Django rest framework:__str__ returned non-string (type NoneType) 真正原因
    centos如何安装python库?
    linux如何自动获取ip地址
  • 原文地址:https://www.cnblogs.com/yimingwang/p/8394699.html
Copyright © 2011-2022 走看看