zoukankan      html  css  js  c++  java
  • 大型网站技术架构案例分析

    可用性战术

    需求征集系统实现是将页面与操作分离,前端由jsphtmlcss的进行布局,数据存储和计算相关操作交于后台sevlert进行处理。网站设计遵循基本分层架构模型即应用层、服务层、数据层。应用层主要负责具体业务逻辑处理;服务层负责提供可复用的服务;数据层负责数据的存储和访问。网站的可用性架构设计不但考虑实际的硬件故障引起的宕机,还要考虑网站升级发布引起的宕机。高可用的服务策略包括分级管理、超时设置、服务降级(关闭非核心服务)等。高可用的数据是最宝贵的资产,保证数据存储高可用的手段主要是数据备份和失效转换机制。数据备份可以实现数据完全的持久化,失效转换机制是为了保证系统可用。保证网站高可用,万无一失,是一个艰难的过程。其中友好的界面风格,简单便捷的操作,合理的结构布局,良好的提示是必要的,对提高易用性很是有帮助。三级菜单的实现算法要以时间复杂度为标准,显示快,无需等待。

    网站的可用性指标是网站架构设计中的重要指标,也是考核指标。所以说,一个高可用的网站架构是一个公司所需要具备的。而在影响网站可用性的众多因素中,硬件故障是常态,网站的高可用架构设计的主要目的就是保证服务器硬件故障时,服务依然可用、数据依然保存并能够被访问。

    例如填报需求时可能一次性录入多条记录,就需要快捷切换以及保存提交信息等功能,以方便相同信息或相似信息不必要多次重复输入;而对于一些审核员的审核权限,更改权限后应及时生效,保证审核功能的正常进行。

    对于用户填报的表单,应及时保存到数据库中,并定期进行检测,若发现非法操作或者非授权操作应及时更改,避免对其他正常数据产生影响,对于数据库信息,应定时进行备份,从而当特殊情况发生,使用备份能进行数据还原。

    可修改性战术

    网站的可扩展架构是随需而变的。网站的扩展性架构设计,是对现有系统影响最小的情况下,系统功能可持续扩展及提升的能力。扩展性是指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。它是系统架构设计层面的开闭原则,架构设计考虑未来功能扩展,当系统增加新功能时,不需要对现有系统的结构和代码进行修改。设计网站可扩展架构的核心思想是模块化,并在此基础上,降低模块间的耦合性,提供模块的复用性。模块通过分布式部署,独立的模块部署在独立的服务器上集群从物理上分离模块之间的耦合关系。对于网站的伸缩性,指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力。要实现网站的可伸缩性,关键技术就在于如何构建良好的服务器集群。要达到良好的目标,就要求每次扩容和减少服务器时,对整个网站的影响是最小的。伸缩性是复杂的,没有通用的、完美的解决方案和产品,但有很多这方面的案例可供借鉴。一个具有良好伸缩性的网站,其设计总是走在业务发展的前面,在业务需要处理更多访问和处理之前,就已经做好了充分的准备,当业务需要时,只需要增加服务器并简单部署就可以了。

    系统面向的用户多,范围广,通过不断地向集群中添加服务器来增强整个集群的处理能力,这就是网站系统的伸缩性架构,网站以此手段不断提升自己的规模,这个演化过程总体来说是渐进式的。网站的伸缩性设计可分为两类,一类是根据功能进行物理分离实现伸缩、一类是单一功能通过集群实现伸缩。

    例如在系统中更改填报信息或者审核人员审核权限时,仅仅修改局部内容,避免牵一发而动全身,影响到其他模块;并且相应修改应及时生效,以保证系统正常高效的运行。再有就是对于数据表设计时应考虑到后期进行扩展,由于需求的多次变化,可扩展的数据结构就有非常重要的地位,可以保证了数据的灵活性,对于不同类型的填报或者审核也可以进行明显的区分,可移植性强,适用性高。

  • 相关阅读:
    利用freopen()函数和fc命令简化程序调试
    A Guide to the Multiboot Process
    略谈cpu架构种类
    RHEL与Centos
    九度 1470 调整方阵
    九度 1481 Is It A Tree?
    九度 1548 平面上的点(技巧题)
    九度 1547 出入栈(递推DP)
    2014年王道论坛研究生机试练习赛(一) set 1 GrassLand密码
    13年10月 月赛第一场 set 4 迷宫问题
  • 原文地址:https://www.cnblogs.com/zhaoziming/p/8626866.html
Copyright © 2011-2022 走看看