高并发处理方案

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

简单做一个归纳,从低成本、高性能和高扩张性的角度来说有如下处理方案:

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语句作分析。

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/3866.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚重蔚管理团队
上一篇 2017年11月25日 09:56
下一篇 2017年11月27日 13:28

相关推荐

  • PHP常见数组排序方法小汇总

    1.简单数组排序 sort() 函数和rsort() 函数:语法规则:bool sort(array &array [,int sort_flags] bool rsort(array &array [.int_sort_flags]参数:第一个参数是排序数组对象第二个参数是可以选的 可选值…

    2022年6月25日
    0155
  • 分享php计算字符串长度。

    在PHP中,计算字符串长度的方法有很多,下面我们将介绍一些常用的方法。 1. strlen()函数:这是一个非常直接的函数,用于获取字符串的长度,它的使用方法如下: echo strlen("Hello World"); // 输出11 2…

    2024年6月16日
    00
  • 在PHP中使用机器学习的最佳实践。

    随着互联网和人工智能的发展,机器学习的需求不断增加,而PHP语言作为网络应用开发的主要语言之一,在机器学习的应用中也起到了不可替代的作用。但是PHP作为一种脚本语言,其性能相对较差,而机器学习操作需要大量…

    2023年5月30日
    03
  • php程序员应具有的7种能力

    php能力  1,了解阶段,您能写一些代码,因为那是在手册和google的帮助下,您才完成的。变量乱定义,N多函数不知道,做起事来很慢,想到什么写什么,代码写的比较乱,后期维护很麻烦。 2,熟悉阶段,经常查函数,手…

    2017年11月16日
    0214
  • 如何进行PHP的安全管理?

    PHP作为一种开源的编程语言,广泛应用于Web开发领域。然而,随着网络安全威胁不断增加,对PHP应用的安全管理也变得越来越重要。在这篇文章中,我们将探讨如何进行PHP的安全管理,以保障应用的安全性。优化代码在编…

    2023年5月17日
    04
  • 自学PHP的绘图具体演示(附代码)

    (1)绘制线条  imageline() (2)绘制三角形:imageline() (3)绘制矩形:imagerectangle()、imagefilledrectangle() 描边矩形:imagerectangle() 填充矩形:imagefilledrectangle() (4)绘制圆形 和 椭圆形:im…

    2018年9月1日 PHP自学教程
    0518
  • PHP与数据库缓存的集成。

    随着互联网的发展,数据量与访问量的快速增长,有效地缓存已成为提高网站性能的重要方式。在Web应用程序中,数据库是必不可少的组成部分。为了减轻数据库的负载,促进网站性能的提升,我们需要将缓存技术与数据库集…

    2023年5月21日
    04
  • 数组转json后的结果是数组还是对象? (踩坑记录)

    最近工作中经常遇到这些问题,因此记录一下~问题:数组转json,有时是对象,有时是数组?情况一:$arr = [1,2,3];//数组下标从0开始的 echo json_encode($arr); //[1,2,3] $arr = [1=>1,2=>2,3=>3];//数组…

    2022年6月27日
    0143

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息