在架构中网站的可用性尤为重要,保证了网站的万无一失。可用性用来描述网站可有效访问的特性。可用性的指标是网站架构设计的重要指标。一个典型的网站架构分为三层:应用层、服务层、数据层;各层之间相互独立,应用层主要负责具体业务逻辑的处理;服务层负责提供可复用的服务;数据层负责数据存储与访问。在复杂的大型网站架构中划分的更加详细,架构更加复杂。
以应用层负为例。应用层主要处理网站应用的业务逻辑,通过负载均衡进行无状态服务的失效转移。负载均衡在应用层起到了系统高可用的作用,因此即使某个应用的访问量非常少,只用一台服务器提供服务就绰绰有余。但是如果需要保持高可用性则必须要部署两台服务器。
其中在高可用的应用通过负载均衡的进行无状态服务的失效转移和应用服务器集群的session管理,session管理主要包括Session复制、Session绑定、利用Cookie记录Session及Session服务器四个方面,Session服务器具有可用性高、伸缩性好、性能不错和、、的及对信息大小没有限制的优点。高可用数据中包含了CAP原理、数据备份、失效转移三个方面。对于公司应用来说可用性关系到该公司网站的生死存亡。对于个人而言可用性关系到自己的绩效升迁,并且事物总是先求生存,然后发展,因此我们要多多考虑网站的高可用性,及事务所存在的后续价值。
上学期在老师的要求下,自己做了《XXXXXX系统》,但是并没有使用架构进行部署,在需求变更时难以对其进行修改,这学期通过对架构的学习,将对其进行重新实现。通过对网站架构高可用性的架构这章的阅读,在自己做的《XXXXXX系统》中重要的是对数据的高可用性,为了能有效的提高该网站的可用性需要:(1)增加对数据备份功能,从而减少系统出现故障时,尽可能多的减少损失。(2)对相应的系统做一定的更改,做到系统在出故障时能够减少故障出现的时间,例如:将数据库的东西和界面的设定做出区分,这样在系统出现问题的时候,可以很好的找到问题出现在哪。可以减少错误出现的次数,甚至可以减少故障的时间。
网站架构另一个质量属性是伸缩性。网站的收缩性就是通过改变部署的服务器就可以扩大和缩小网站的服务器的处理能力。一般伸缩性的设计化为两类,一类是根据功能进行物理分离实现伸缩,一类是单一功能通过集群实现伸缩。一个良好的伸缩性架构设计的网站,其一定会在业务发展的前面。因此可以看出伸缩性架构的设计对于业务的实现具有重要的意义。例如淘宝网在2012年由于“双十一”同时1000万用户访问网站,虽然出现了一些问题,绝大部分交易顺利完成。这就看出淘宝网架构的伸缩性还是不错的。做的《XXXXXX系统》正如淘宝网一样,我们也应考虑当众多的用户同时访问该网站的时候我们的网站是否能够正常运行。防止太多的人同时的进行进入,造成系统的瘫痪。对于我做的《XXXXXX系统》提高伸缩性应该增加功能是:(1)对每个所属机构的用户人员进行限制。不同功能应实现分级处理。(2)对系统进行收缩性的测试,将其收缩性放展到最大。为防止系统发生故障做到了保障。
任何网站的需求总是随着用户的要求不断发生着变化。为了适应随机应变,网站的可扩展性架构就显着尤为重要了。任何软件产品一旦你拥有了可扩展性的架构,这也意味着你的产品拥有了随时应变市场需求的能力,让你的产品更加具有市场优越性。开发低耦合是软件设计的最终目标之一,此目标驱动着软件开发技术的发展和创新。这也意味着低耦合系统更容易扩展,模块更容易复用。其中利用分布式消息队列可以降低系统的耦合性。利用分布式服务来提高系统的可复用性,进而创建可复用的业务平台。对于《XXXXXX系统》功能的不断扩展,且功能众多时,可采用功能的拆分,将模块独立部署,降低系统的耦合性,提高网站的可维护性和修改性。这就是采用分布式的设计。
通过三个架构的三个质量属性的角度对《XXXXXX系统》的将重新设计,使之更加完善。