用php编写支持高并发的网站,需要做什么处理

场景:很难做静态化,像做一个微博那样的东西,并发又高,跟新又快,这种需求的话,又该怎么处理?
高并发的问题点是:高并发更多的是考验数据的读写,最终考验的是根据具体的业务需求惊醒系统的架构;
解决方案:1.分清楚哪些数据是实时读写,哪些数据是异步读写;(区分数据实时还是异步的方法:)
2.数据的存储方案;mysql擅长的是关系数据和数据统计,高并发访问时瓶颈;
memcache擅长的是数据缓存,但是kv的数据结构有限;
redis作为内存数据库但是内存空间毕竟没有硬盘空间大;
(各有优缺点,根据自己的业务来综合或者选取这些工具,在做横向和纵向的分库分表,再辅以memcache集群缓存
key-value高性能存储,异步队列任务系统,整个架构就可以建立起来)
3.静态动态访问:动态网站静态化 http://blog.csdn.net/wenniuwuren/article/details/50507580
使用cdn,或者至少弄个静态访问层,至于使用apache还是nginx或者其它的,自己在虚拟机上都安装一遍,做一个
压力测试对比一下,非静态访问转发到动态访问层。
4.php的逻辑处理:php承接动态访问的输入,进行逻辑运算,最后到数据层去进行读写,比较坑的事就是,无谓的
foreach循环,复制等操作;
5.做静态化,减少数据库的压力,能静态化的静态化,不能静态化的用分布式算法,不要将运算交给数据库;
常识扩展:1.php网站的瓶颈基本在数据库和存储系统,数据的一致性,可扩展性,可用性很难保证。(需要根据具体的业务场景做横向
和纵向的分库分表);
2.一般使用LVS+PHP(1000台),就算日均80亿次请求,每秒有10万并发,那分到每台机器的请求只有100个。只要你的php程序不是
太差,100QPS是没问题的;
3.有一类真正的高并发,比如WebIM,一台机器要承载数十万的TCP客户端连接,进行大规模的实时通信。可以用PHP的
异步高并发扩展swoole.链接:Swoole: PHP的异步、并行、分布式扩展框架 http://www.swoole.com/ 链接: Swoole: PHP的异步、并行、分布式扩展框架

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值