• 高并发


    http://snowolf.iteye.com/blog/1677495

    时常看到高并发的问题,但高并发其实是最不需要考虑的东西。为何,他虚无缥缈,很少有网站真的需要这些东西,而且其中很多技术,其实你已经在用了。有这个意识就够了,不需要时刻盯着这个问题。只有很少的网站真的能达到高并发。 

    简单做一个归纳,从低成本、高性能和高扩张性的角度来说有如下处理方案: 
      1、HTML静态化 
      2、图片服务器分离 
      3、数据库集群和库表散列 
      4、缓存 
       5、镜像 
       6、负载均衡;一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性,随时往架构里面增减节点都非常容易。 

    下面也是一个总结,跟上面部分相同。 
    高并发时,性能瓶颈及当前常用的应对措施 

    1.数据库瓶颈。MySQL并发链接100 
    2.apache 并发链接1500 
    3.程序执行效率 


    1.有数据库瓶颈时,当前处理方案无外乎 主从,集群。增加cache(memcached). 

    如:手机之家新系统介绍及架构分享(http://www.slideshare.NET/Fenng/ss-1218991?from=ss_embed) 

    就是在cache层做优化 

    又拍网架构(http://www.bopor.com/?p=652) 

    是以增加数据库,分表分库的方法解决。 

    Sina增加了mq(消息队列)来分发数据。 

    还有风站用了key-value的数据库。其实这可以理解成一个持久化的缓存。 



    2.apache瓶颈。 

    增加服务器。负载均衡。如sina的F5 

    由于进程数的限制。会把一些基本不变的代码挪出来放到单独的服务器。如css/js/图片。 

    国内成功的案例是tom的cdn 


    又如nginx的横空出世和squid的反向代理都是基于这个原因出来的。 


    3.PHP的执行效率。原因有多个。 

    1).本身的效率低。 

    解决的成功案例是Zend Optimizer 和 facebooke的hiphop 

    Taobao是把php代码编译成模块解决效率问题。 

    2). 数据库查询效率问题。如可能有order by ,group by 等Sql数据问题。 

    这个其实应该归结到数据库设计问题。 

    解决的办法是建立正确的索引。增加memcache.。 

    对like表 用专用的sphinx.和lucence 等搜索服务。 

    程序员都应该会用explain对sql语句作分析。 

    说到底。解决高并发就是上面所列技术,程序员要做的就是把每个技术具体实现。

  • 相关阅读:
    与平面和空间打交道的计算几何
    借助水流解决问题的网络流
    计算几何算法概览
    关于while (~scanf("%d %d", &m, &n))的用法
    Minimizing maximizer(POJ 1769)
    java九九乘法表
    java替换字符串中的World为Money
    java截取字符串,第4位以后的字符串用*代替
    java使用valueOf的方法反转字符串输出
    java使用StringBuilder的方法反转字符串输出
  • 原文地址:https://www.cnblogs.com/valor-xh/p/6657987.html
Copyright © 2020-2023  润新知