新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
PHP语言开发高并发的网站,需要加缓存,复杂逻辑走消息队列异步处理,mysql查询必须走索引,还搞不定就加机器分流,mysql配置升高并且一主多从,使用codis集群,增加消息队列的消费者,如果还搞不定就随机拒绝请求,当然这是最后的退路。
成都创新互联公司专注于企业全网整合营销推广、网站重做改版、阜宁网站定制设计、自适应品牌网站建设、H5网站设计、商城网站建设、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为阜宁等各大城市提供网站开发制作服务。
缓存
缓存是避免业务查询过多的请求mysql,导致业务不可用,段氏根据场景来判断是否需要使用codis集群,如果并发量没有达到某个级别,16G的redis也可以,但是要避免redis在高并发下容易发生的缓存穿透,尽量做成高可用,并保证缓存实现的命中率。
消息队列
这也是高并发情境下的杀手锏,削峰填谷,将耗时的业务逻辑直接以队列的形式异步慢慢处理,防止请求过度积压,导致的服务器不可用。
mysql优化
有些场景下必须查询mysql的,也应该走索引,避免多表联合查询,甚至mysql的事务隔离级别都尽量的降低,或者直接去掉事务,采用最终一致性的补偿指明机制。升级mysql的配置,核心数和内存的提升对查询速度的优化是显而易见的,最好能一步到位的走一主多从,查询路由到从服务器上。
随机拒绝请求
这不是开玩笑,我们必须保证服务器可用,宁愿拒绝掉一些请求,也不能让服务器大量请求阻塞握逗散,最终导致大家都用不了。
可以采碧基用数据库缓存、事务缓存等技巧。还可以从架构上把事务做合理的分配,花钱扩充你的硬件设施等。比如,阿里巴巴哪做从最初的1台电脑逐步扩充到过万台电脑了。
与PHP程序关系也非常大,比如,你发现了网站反应慢的第一因素是因为某个表非常大,你的网页从那个库表中读写时间非常长,可以考虑用一个原则把数据库表分段,每一段存到不同的计算机上去保存,你的程序需要读写那个表的时候,先判断要读写的内容属于哪一段的,然后再去从已经建立了永久连接的清单中找到对应段的连接来用。
阿里巴巴有个例子:每一种商品的属性字段内容打印出来就要5页A4纸,160多万种商品,如果你要从包含了悔缓谨商品属性字段的那张表中进行读写,该是多长时间?