题目:阅读《大型网站技术架构:核心原理与案例分析》第五、六章,结合《某重大技术需求征集系统》,列举实例分析采用的可用性和可修改性战术,将上述内容撰写成一篇1500字左右的博客阐述你的观点。
网站的可用性战术是网站有效运行的根本保障,一个网站的高可用性能够给用户很大的安全感,最大限度的保障用户的利益、隐私不被侵犯。由于
经费有限,硬件设备在节约成本的同时也降低了可用性,所以硬件故障就发生的比较频繁,因此,网站的高可用架构设计的主要目的就是保证服务器硬
件故障时服务依然可用、数据依然保存并能够被访问。典型的网站设计通常遵循三层架构模型,应用层、服务层、数据层,各层之间具有相对独立性,
应用层主要负责具体业务逻辑处理;服务层负责提供可复用的服务;数据层负责数据的存储与访问。中小型网站在具体部署时,通常将应用层和服务层
部署在一起,而数据层则另外部署。应用层主要处理网站应用的业务逻辑,应用的一个显著特点是应用的无状态性。不保存状态的应用给高可用的架构
设计带来了巨大便利,既然服务器不保存请求的状态,那么所有的服务器完全对等,当任意一台或多台服务器宕机,请求提交给其他任意一台可用机器
处理,这样对终端用户而言,请求总是能够成功的,整个系统依然可用。对于应用服务器集群,实现这种服务器可用状态实时监测、自动转移失败任务
的机制是负载均衡。网站的伸缩性永无止境。所谓网站的伸缩性,指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩
小网站的服务处理能力。要实现网站的可伸缩性,关键技术就在于如何构建良好的服务器集群。要达到良好的目标,就要求每次扩容和减少服务器时,
对整个网站的影响是最小的。CAP原理就是选择强化分布式存储系统的可用性和伸缩性,而在某种程度上放弃一致性。CAP原理对于可伸缩的分布式系
统设计具有重要意义,不恰当地迎合各种需求,可能会使设计进入两难境地,难以为继。我们的系统有大量的统计数据。我们的网站随时都有可能进行
修改,比如发布新功能,这时就需要在服务器上关闭原有的应用,重新部署新的应用,整个过程要求不影响用户的使用。为了把对用户的影响降低到最
小,通常使用发布脚本来完成发布。经过严格的测试,软件部署到服务器还是会出现问题,主要原因就是测试环境和线上环境并不相同,所以我们在网
站发布时,要把测试通过的代码先发布到预发布机器上,确认系统没有问题后才正式发布。
网站的可扩展架构是随需而变的。网站的扩展性架构设计,是对现有系统影响最小的情况下,系统功能可持续扩展及提升的能力。扩展性是指对现有
系统影响最小的情况下,系统功能可持续扩展或提升的能力。它是系统架构设计层面的开闭原则,架构设计考虑未来功能扩展,当系统增加新功能时,不
需要对现有系统的结构和代码进行修改。设计网站可扩展架构的核心思想是模块化,并在此基础上,降低模块间的耦合性,提供模块的复用性。模块通过
分布式部署,独立的模块部署在独立的服务器上集群从物理上分离模块之间的耦合关系。
可用性战术将会阻止错误发展成为故障,或者至少能够把错误的影响限制在一定范围内,从而使系统恢复成为可能。
可用性战术中,此系统用到了错误检测,在用户操作数据库时,比如:修改个人信息,修改未审核的需求信息,填写需求等,在过程中发生未知错
误的时候,系统可以自动返回,给出提示信息,,并对已经进行的操作进行回滚,保证对错误的完善操作。
可修改性:遵循“高内聚低耦合”的原则,将整个系统进行分层,数据、应用、操作做到相互关联且不会互相影响,在某一处发生错误时,也可以针对
不同的层次进行修改;
我们的系统只是在tomcat的服务器上运行,网站架构并没有过多的设计,所以还需要重新构建。