构建web高性能网站的一些知识

做java web开发己经两三年了,突然之间感觉自己学习的知识好少,现在想大致的对构建高性能web构架进行整理一下:

  1. 最基础的优化还是要放在程序上,如果程序本身在设计上有问题,那其他再好改进也是没用的。我们在开发时应不断的去与同事进行沟通,对于重要的处理部位,在相互进行代码审查,不要以为这很浪费时间,一旦后期出现问题,花费的时间会更多。

  2. 数据结构优化,如果数据量很大,我们必须要考虑数据结构本身是否有问题,简单一点的,查询带有图片的数据表会很慢,就算你的查询语句中不包括这个字段也是性能不高的,所以有必要把图片单独做成数据表进行关联。再小的图片也请你不要忘记这样做。其次就是索引,分析一些经常要用户的查询表,建立合适的索引会极大的提高查询效率。有一些查询语句是用不上索引,也可以对sql语句做进一步的优化。分表也是一种数据处理策略,分库也是一种数据处理策略,我们应尽量的把一些历史记录做成单独的一部分,使其不影响正常的业务性能。如我公司会记录日常员工的进出刷卡性况,因为数据大,查询频繁,所以将这部分记录做成单独的一个数据库,进行按月份分表处理。这样年代久远的记录就不会影响分析统计的性能。

  3. 使用缓存,举个例子,如果是hibernate就可以使用二级缓存,这样会极大的提高业务数据处理性能。如果是其他的持久化方案的话,可以布署单独的缓存服务器,如redis,memoreCache等缓存方案性能都是非常高的。曾经看到有些项目在使用缓存时,会直接在程序中去判断缓存是否存在,如果不存在则创建存放,如果存在则直接取出缓存,这样做的本质是没有错的,但不要直接在程序中实现得这么直白,java的注解是很强大的,这些最基本的判断都可以交给注解处理,我们只要关心如果创建新的实例就可以了。

  4. 提高前端访问效率,这里可以分为两步:第一步是节省流量,如果加载的流量过大,带宽不够的话,那访问效果会直线下降,所以我们要尽量的去压缩加载的内容,使每一次的访问流量尽可以减少。第二步是生静处理,对于一些访问量大的页面可以使用静态页面进行直接访问,这样会减轻非常大一部分服务器压力。

  5. 负载均衡,提高服务器并发处理能力。当访问量已经超过服务器的处理能力时,可以适当的增加服务器,分散用户的请求。这里需要注意的是,前面如果使用了缓存,那这个缓存就必须是可共享的缓存,不然会造成数据的误读,脏写。

  6. CDN,这个想必大家在下载jquery时可以看到过,简单的来说,他的作用就是将要访问的数据放在离用户最近的网络上,这样用户就可以快速的访问这些数据了,这样不仅减轻了服务器的带宽,也提高的加载性能。

    再进一步的性能提高,小可就还要认真学习了。

















你可能感兴趣的:(Web,高性能)