作业04.提升系统性能

  要想编写一套能够正常使用的网站不仅要在业务流程上面下功夫,还得从专业的角度入手。什么是专业的角度,就是衡量一个网站有哪些性能指标?常见的有可用性、易用性、可扩展性。首先,对于代码(或者说程序)的可用性 和易用性,这应该是最基本的要求。我们的代码开发出来是做什么的呢?不是用来孤芳自赏的,而是要放在业务环境中由业务人员来使用的,也可以说是来检验的。这样的话,可能就有下面的一些要求:完全实现了业务上的要求,准确地完成了相关的任务。 在性能上表现良好,应该是节省了用户的时间,而不是浪费他们的时间。提高工作效率,他们的感受会很好。没有太过复杂的操作,即使没有相关的培训,业务人员一眼看上去,大概的功能也就基本了解,并能够很快上手使用。

  上面说了可用性和易用性,可用性就是系统要能用,不能三天两头的出故障,这样会造成用户的大量流失。易用性是基于可用性的,在能够实用的基础上还要好用。下面说一下可扩展性。这一点主要是为了满足随时可能改变的用户需求和可能增加的系统功能。

      全读者三章之后,发现要改善这个系统,必须要存这三个方面入手。可用性,易用性和可扩展性。

      对于XXX系统,首先我们要学会的就是对系统的分层,通常将系统分为3层,即业务层、服务层和数据层,这也是常说的MVC思想。这样的分层有利于在故障发生时,准确定位故障,并及时解决故障,而且最好将每次发生的故障信息保存到日志文件,这样更有利于故障复原和分析。而当网站的规模比较大,有较多的用户同时访问时,我们可以交给集群服务器,然后进行负载均衡,将流量和数据分摊到集群的多台服务器上,提高整体的处理能力,提高可用性。Session管理,在集群环境中,Session管理主要有Session复制、Session绑定、用Cookie文件记录Session等方法,提供分布式的缓存。除此之外,还有以下几个方法提高可用性。分级管理,将服务器进行分级管理,核心应用和服务优先用更好的硬件,这样会提高运行的速度;超时设置,由于服务器宕机、线程死锁等原因,使用户长时间得不到响应,同时还占用应用程序的资源,所以我们要设置服务器超时时间,一旦超时就抛出异常;异步调用,就是将一个服务分成多步,这样就不会因为一个服务失败导致整个应用的请求失败;服务降级,就是说在网站访问的高峰期,拒绝访问低优先级的服务,节约资源,使服务器避免全部死机。接下来是一些数据的提高可用性的方法,保证数据高可用手段主要是数据备份和实效转移机制。易用性主要表现在人机交互方面,对于有较多项的表单录入一定要将界面设计得尽量美观,而且一定要实现减少用户操作的设计,除此之外,数据库的表结构影响网页的反应速度,所以,数据库的设计方面一定要考虑得周到全面。

      网站不可用也被称为网站故障,业界通常用多少个9来衡量网站的可用性,对于大多数网站而言,2个9是基本可用,网站年度不可用时间小于88小时;3个9是较高可用,网站年度不可用时间小于9小时;4个9是具有自动恢复能力的高可用,网站的年度不可用时间小于53分钟,比如QQ就是4个9;5个9是极高可用性,网站年度不可用时间小于5分钟。可用性指标是网站架构设计的重要指标,是网站或者产品的整体考核指标。网站可用性是更加看得见摸得着的质量属性,所以在架构设计上,系统可用性的部分就需要花费更多的时间和精力了。而实现高可用架构的主要手段是数据和服务的冗余备份及失效转移,一旦某些服务器宕机,就将服务切换到其他可用的服务器上,如果磁盘损坏,则从备份的磁盘读取数据。所以就我们的《XXX系统》来说,不是只要完成系统的功能就等于完成了这个系统,根据系统的可用性,做好数据的备份和还原是最重要的保障之一。但是我们在设计和开发这个系统时,却把大部分精力放在了功能的实现上,这是一个很大的误区。在数据库的设计方面也是很重要的,加密存储、及时备份、保存日志都不失为是一个好的方法。保证数据的可持久存储,数据的可访问性,在数据有多份副本的情况下的一致性,都可以更好的维护我们的系统,提高我们系统的可用性。在服务器宕机时,进行失效转移可以保证数据访问不会失败,失效确认、访问转移、数据恢复都可以保证网站的数据不会丢失。对于我们的这个系统,为了保障高可用运行,我们还可以使用发布脚本来完成网站的更新发布,可以减少重启服务器和重新部署,而且不会影响用户使用。

      上面说了可用性和易用性,可用性就是系统要能用,不能三天两头的出故障,这样会造成用户的大量流失。易用性是基于可用性的,在能够实用的基础上还要好用。下面说一下可扩展性。这一点主要是为了满足随时可能改变的用户需求和可能增加的系统功能。

      以后的代码不仅仅要考虑功能有没有实现,还要考虑代码的质量和用户反馈。

posted @ 2017-03-17 09:06  三藏大湿  阅读(232)  评论(0编辑  收藏  举报