这就叫并发了 要是一个人一个人排队进就不是并发, 要是 几百斗瞎上千上万人同时进大门 就可以称为锋岁高并发了
并发和高并发 其实意思是一样的 不同的只是并发数量上的区别
web的并发是指 多人同时向一个url发送请求
理论上经验这个东西是学不来的.说一下我的例子.
刚入行的时候,基本就是写了一些增删改查.甚至session都不太理解.
随着入行后,你会遇到各种各样的问题.在解决问题的过程中,经验来了.
简单说一下所谓大规模高并发访问的web架构吧.
其实,对于大规模高并发不外乎两点,第一点是及时相应(尽可能优化io).第二点是数盯答肢据安全.
这两点控制的好,就没问题的.所以,我们的架构也就围绕在这两点应运而生.
第一点,为了尽可能提高应用的io吞吐量.则需要我们把所有耗时的io *** 作尽可能的优化,比如全局使用很少更改的一些配置,则可以采用nosql来全局举轮共享(注意,这里的全局是指服务器集群.如果涉及到了大规模,肯定是多服务器的).在其次可以增加服务器缓存.比如2秒钟从上一条的服务器读取配置,存到服务器级别.以提高效率.还有线程缓存.如果业务复杂可能对一个请求需要查询多次数据,不变的,老规矩,放到线程缓存.基本也就差不多了.
第二点,因为应用不同,要考虑容错率.这个部分优化,可以考虑分离业务,把必须要数据安全的业务逻辑提取出来,队列执行或者特殊处理.
剩下的就是服务器部署与如何分配,比如多少台web服务器,数凯世据库配置,内存服务器配置等.
这只能是在实际项目和工作过程中来区别对待了.
尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。用jprofiler等工具找出性能瓶颈,减少额外的开销。
优化数据库查询语句,减少直接使用hibernate等念搜工具的直接生成语句(仅耗时较长的查询做优化)。
优化数据库结构,多做索引,提高查询效率。
统计的功能尽量做缓存,或按每天一统计或定时统计相关报表,避免需要时进行统友缺计的功能。
能使用静态页面的地方尽量使用,减少容器的解析(尽量将动态内容生成静态html来显示)。
解决以上问题后,使用服务器仔告历集群来解决单台的瓶颈问题。
基本上以上述问题解决后,达到系统最优。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)