• 《大型网站技术架构:核心原理与案例分析》阅读笔记三


        今天读了《大型网站技术架构:核心原理与案例分析》第三章——大型网站核心架构要素。软件架构的定义就是:“有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计”。系统的各个重要组成部分及其关系构成了系统的架构,这些组成部分呢可以是具体的功能模块,也可以是非功能的设计与决策,他们相互关系组成一个整体,共同构成了软件系统的架构。软件除了当前的系统功能需求外,软件架构还需要关注性能、可用性、伸缩性、扩展性和安全性这五个架构要素。架构设计过程汇总需要平衡这五个要素之间的关系以实现需求和架构目标,这些要素也是衡量一个软件架构设计优劣的要素。

        性能是网站的一个重要指标,一个性能不足的网站会导致严重的用户流失,很多时候网站性能问题是网站架构升级优化的触发器。而正因为性能对于网站的重要性,所以优化网站性能的手段也非常之多。而利用响应时间、TPS、系统性能计数器等可以来对网站性能进行衡量。网站必须保证系统在持续运行切访问压力均匀的情况下保持稳定的性能特性。而对于一个大型网站而言,维持7*24可用也是一项重大内容。大型网站使用的服务器硬件通常是普通的商用服务器,这些服务器的设计目标本身并不保证高可用,所以为了维持可用性,大型网站通常都会有上万台服务器,每天都必定会有一些服务器宕机,因此网站高可硬架构设计的前提是必然会出现服务器宕机,而高可用实际的目标就是当服务器宕机的时候,服务或者应用依然可用。网站通常利用冗余来实现高可用的性能需求。网站的扩展性架构直接关注网站的功能需求。衡量网站架构扩展性好坏的主要标准就是在网站增加新的业务产品时,是否可以实现对现有产品透明无影响,不需要任何改动或者很少的改动既有业务功能就可以上线新产品,这就是网站可伸缩架构的体现。网站可伸缩架构的主要手段是事件驱动架构和分布式服务。网站的安全架构是保护网站不受恶意访问和攻击,防止网站重要数据被窃取。

        性能、可用性、伸缩性、扩展性和安全性是网站架构最核心的几个要素,这几个问题解决了,大型网站架构设计的大部分挑战也就克服了。

  • 相关阅读:
    如何解决软键盘弹出引起的各种不适
    防反编译、混淆文件proguard.cfg与proguard-project.txt详解
    Android.mk添加第三方jar包
    Android Proguard.flags LOCAL_PROGUARD_FLAGS
    【Mood 21】要不要重复造轮子
    彻底解决INSTALL_FAILED_UPDATE_INCOMPATIBLE的安装错误
    【起航计划 037】2015 起航计划 Android APIDemo的魔鬼步伐 36 App->Service->Remote Service Binding AIDL实现不同进程间调用服务接口 kill 进程
    【起航计划ObjC 003】印第安老斑鸠ObjC的幻想 ---- ObjC经典问题
    缩短移动开发周期的ApiCloud
    LeAndroid招聘汇总
  • 原文地址:https://www.cnblogs.com/dawn-sky/p/6389635.html
Copyright © 2020-2023  润新知