a,分而治之 多级分流 多路归并排序
b,框架用最熟悉的
c,优化从最上层的业务逻辑开始
d,硬件舍得投入
1、动态资源和静态资源分离;
2、CDN;
3、负载均衡;
4、分布式缓存;
5、数据库读写分离或数据切分(垂直或水平);
6、服务分布式部署。
业务逻辑服务器:Disruptor模式
页面服务器:缓存缓存缓存
数据库:内存内存内存。满了满了满了!分布式分布式分布式
最后你会发现流量才是瓶颈,disruptor模式挖掘出CPU的每一分潜力,业务逻辑服务器只要一台民用机可能就hold住了。其实node.js就是用了这个思想。
有钱有时间,就SOA吧
多台tomcat做负载均衡,即使你效率再高。对于高并发,单台tomcat能管理的thread pool的线程数也是有限的
tomcat使用apr/nio模式增加吞吐量
对于大流量,动静分离,tomcat处理静态资源的能力比较差,交给nginx
缓存是重要的,把实时性要求不高的,或者可以忍受一段时间内的实时,缓存起来
更重要的是整体架构的设计、数据库的设计和优化、缓存系统等等。用Tomcat的话不要用Apache,小并发量还能用用,一旦请求多了会很麻烦,用Nginx。JVM特别是GC的调优也可以看看。
b,框架用最熟悉的
c,优化从最上层的业务逻辑开始
d,硬件舍得投入
1、动态资源和静态资源分离;
2、CDN;
3、负载均衡;
4、分布式缓存;
5、数据库读写分离或数据切分(垂直或水平);
6、服务分布式部署。
业务逻辑服务器:Disruptor模式
页面服务器:缓存缓存缓存
数据库:内存内存内存。满了满了满了!分布式分布式分布式
最后你会发现流量才是瓶颈,disruptor模式挖掘出CPU的每一分潜力,业务逻辑服务器只要一台民用机可能就hold住了。其实node.js就是用了这个思想。
有钱有时间,就SOA吧
多台tomcat做负载均衡,即使你效率再高。对于高并发,单台tomcat能管理的thread pool的线程数也是有限的
tomcat使用apr/nio模式增加吞吐量
对于大流量,动静分离,tomcat处理静态资源的能力比较差,交给nginx
缓存是重要的,把实时性要求不高的,或者可以忍受一段时间内的实时,缓存起来
更重要的是整体架构的设计、数据库的设计和优化、缓存系统等等。用Tomcat的话不要用Apache,小并发量还能用用,一旦请求多了会很麻烦,用Nginx。JVM特别是GC的调优也可以看看。