转载自: http://yizhyi.iteye.com/blog/765600
时常看到高并发的问题,但高并发其实是最不需要考虑的东西。为何,他虚无缥缈,很少有网站真的需要这些东西,而且其中很多技术,其实你已经在用了。有这个意识就够了,不需要时刻盯着这个问题。只有很少的网站真的能达到高并发。
简单做一个归纳,从低成本、高性能和高扩张性的角度来说有如下处理方案:
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语句作分析。
说到底。解决高并发就是上面所列技术,程序员要做的就是把每个技术具体实现。
分享到:
相关推荐
HBase存储数据模型为行式,每个表被分成多个Region,由Region Server管理,确保数据分散在集群上,实现高并发和高性能。 在给定的场景中,Spring Boot被用作应用的开发框架,负责集成和管理各个组件。开发者通过...
7. **VIP商业版特性**:可能提供了更多的定制服务、技术支持、性能优化和更高的并发处理能力,适合有一定规模的电影网站运营者。 8. **运维支持**:系统可能提供日志分析、错误追踪、备份恢复等运维工具,方便管理...
Erlang是一种函数式编程语言,以其并发处理和容错能力而闻名,常用于构建高可用性系统。C-Node是Erlang OTP(开放电信平台)的一部分,允许C代码与Erlang虚拟机(BEAM)通信。 首先,接口设计分为高级语言接口和...
优先级高的进程优先得到CPU资源,但需防止优先级反转问题,以免高优先级进程长时间等待低优先级进程。 二、关键数据结构 实验中使用了一个名为`a_struct`的结构体,包含以下字段: - `name`:进程名称 - `number`...
【Websphere6.1 安装配置说明】 在IT领域,WebSphere是IBM提供的一款企业级应用服务器,常用于构建、部署和管理Java应用程序。...在实际的企业环境中,这样的配置对于处理大规模、高并发的业务系统至关重要。
它具有强大的功能,可以处理复杂的打印任务,包括中文字符的输出。 2. **ZPL中的汉字支持** 在ZPL中,汉字打印需要使用特殊的字符集,如GB2312或GBK,这些字符集包含了大部分中文字符。斑马打印机通常支持这些编码...
数据库设计需要考虑数据的一致性、完整性和安全性,确保在高并发环境下也能高效地处理数据读写。 2. **源代码(SaleOnLine)**:"SaleOnLine(源代码).rar"中包含了系统的编程实现,可能包括前端用户界面、后端服务...
总的来说,事务操作是数据库管理中的核心概念,它确保了在高并发环境下的数据完整性和一致性。在ThinkPHP框架中,通过简单的API调用即可实现事务操作,使得开发者能够更专注于业务逻辑,而无需过多关心底层数据库的...
- **MobiLink 性能**:为了确保高效率的同步,需要关注一些关键性能指标。 #### 五、MobiLink 性能 - **性能提示**:提供了一些实用的建议来优化 MobiLink 的性能。 - **影响 MobiLink 性能的关键因素**:包括...
Node.js利用非阻塞I/O和事件驱动模型,使其在处理大量并发请求时表现出高效率。 3. **JavaScript:** 作为项目的主要编程语言,JavaScript是Web开发的核心,用于处理前端和后端逻辑。在Strapi中,开发者可以使用...
3. **改进的并发工具**:Java 7增加了Fork/Join框架,这是一种用于并行执行任务的高级框架,适用于大规模数据处理和算法。它使用工作窃取策略来提高多核处理器的效率。 4. **NIO.2文件系统API**:Java 7引入了新的...
3. **事件驱动**:基于事件模型,使得处理并发连接变得简单高效。 4. **多语言支持**:除了Java,还提供了其他语言的绑定,如C#、Python等。 5. **强大的过滤器架构**:允许开发者通过组合过滤器实现复杂的功能,如...
1. **多线程模型**:支持并发连接,可以处理大量并发用户请求。 2. **多种认证机制**:除了公钥和密码认证外,还支持PAM(Pluggable Authentication Modules),可以集成系统级别的认证方式。 3. **加密算法支持**:...
5. **多线程**:线程的创建、同步机制(synchronized关键字、wait/notify方法、Lock接口等),线程池,以及并发工具类。 6. **输入/输出流**:I/O流的基本概念,字符流与字节流,缓冲流,对象序列化,文件操作等。 ...