高并发处理方案详解架构师
时常看到高并发的问题,但高并发其实是最不需要考虑的东西。为何,他虚无缥缈,很少有网站真的需要这些东西,而且其中很多技术,其实你已经在用了。有这个意识就够了,不需要时刻盯着这个问题。只有很少的网站真的能达到高并发。
简单做一个归纳,从低成本、高性能和高扩张性的角度来说有如下处理方案:
1、HTML静态化
2、图片服务器分离
3、数据库集群和库表散列
4、缓存
5、镜像
6、负载均衡;一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性,随时往架构里面增减节点都非常容易。
下面也是一个牛人所做的总结,跟上面部分相同。
高并发时,性能瓶颈及当前常用的应对措施
1.数据库瓶颈。Mysql并发链接100
2.apache 并发链接1500
3.程序执行效率
1.有数据库瓶颈时,当前处理方案无外乎 主从,集群。增加cache(如:memcached).
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语句作分析。
7074.html
架构架构师架构设计相关文章
- 【JAVA面试必会】JMM高并发详解(java内存模型、JMM三大特征、volatile关键字 )「建议收藏」
- 【译】使用 SO_REUSEPORT 套接字开发高并发服务
- 掌握这两本书:搞定高并发这块硬骨头
- java并发编程(十一)
- 详解利用redis + lua解决抢红包高并发的问题
- 测试数据库并发压力的shell脚本详解程序员
- mysql实现高并发计数器详解数据库
- elasticsearch6 学习之并发控制详解程序员
- 2.高并发教程-基础篇-之nginx+mysql实现负载均衡和读写分离详解架构师
- php如何解决redis中的并发问题详解架构师
- Memcached缓存失效时,如何处理高并发的查询DB详解架构师
- 干货:Java并发编程必懂知识点解析详解编程语言
- Java多线程高并发学习笔记(二)——深入理解ReentrantLock与Condition详解编程语言
- JAVA多线程高并发学习笔记(三)——Callable、Future和FutureTask详解编程语言
- Java 并发开发:内置锁 Synchronized详解编程语言
- 用python脚本监控并发量详解编程语言
- mybatis 并发执行时出现NullPointerException详解编程语言
- Go语言圣经–示例: 并发的Clock服务习题详解编程语言
- [javaSE] 网络编程(TCP-并发上传图片)详解编程语言
- Java并发编程之重入锁详解编程语言
- JDK并发工具类详解编程语言
- php高并发下防止超库存保险的方法详解编程语言
- php sleep在高并发下的问题详解编程语言
- python之多并发socket详解编程语言
- Java并发之AQS详解
- 高效实现并发插入——MySQL的秘密武器(mysql并发插入)
- Oracle数据库如何强化并发控制(oracle 关并发)
- 并发访问Redis使用场景性能提升方案及性能测试(并发读取redis)
- Redis集群实现高效并发一致性保障(redis集群并发一致性)
- Redis解决超高并发时的防重时间差(redis防重时间差)
- Python中的并发编程实例