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缓存等等

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

  • 相关阅读:
    网摘:微软暗示将推出iPad版本Office
    Android的缘分和FarMap新版发布
    过年发生的,WinM7推出,MeeGo诞生,iPhone香肠
    gPhone体验和思考(一)
    位图的像素操作练习(20120525)
    远图 安致版上线(FarMap Android)
    iPhone的创意,iPhone应用的覆盖
    201871010101陈来弟《面向对象程序设计(java)》第一周学习总结 201871010101
    sdk&mfc&vcl
    ASP.NET中的Web.config详解
  • 原文地址:https://www.cnblogs.com/pomeng/p/7365926.html
Copyright © 2011-2022 走看看