zoukankan      html  css  js  c++  java
  • 《大型网站技术架构》-读书笔记二:大型网站架构模式和核心要素

    一、网站架构的模式

    1、分层

    分层是将软件进行横向切分。网站软件系统分为应用层,服务层,数据层

    分层架构对网站支持高并发向分布式方向发展至关重要。因此在网站规模还很小的时候就应该采用分层的架构,这样

    将来网站做大时才能更好地应对。

    2、分割

    分割是将软件进行纵向切分。将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元。

    3、分布式

    在网站应用中,常用的分布式方案有以下几种:

    1)分布式应用和服务

    2)分布式静态资源:动静分离

    3)分布式数据和存储:关系数据库和Nosql

    4)分布式计算:Hadoop,MapReduce分布式计算框架

    4、集群

    5、缓存

    6、异步

    异步架构是典型的的生产者消费者模式,两者不存在直接调用。只要保持数据结构不变,彼此功能实现可以随意变化而不受影响。

    使用异步消息队列有如下特性:

    1)提高系统可用性

    2)加快网站响应速度

    3)消除并发访问高峰

    7、冗余

    8、自动化

    目前自动化架构主要集中在发布运维方面,如发布过程自动化,自动化代码管理,自动化部署,自动化监控等。

    9、安全

    二、核心架构要素

    架构:最高层的规划,难以改变的决定。

    (一)、性能

    1、性能优化的几个方面:

    1)浏览器端:浏览器缓存,页面压缩,合理布局页面,减少cookie传输

    2)应用服务器端:服务器本地缓存和分布式缓存,也可以将用户的请求发送的到消息队列的等待后续任务处理,

    而当前请求直接返回响应给用户

    3)代码层面:使用多线程,改善内存管理等手段

    4)数据库服务端:索引、缓存,sql优化,nosql使用

    2、衡量网站性能的指标:响应时间、TPS、系统性能计数器

    (二)、可用性

    1、高可用的设计目标就是当服务器宕机时候,服务或者用于依然可用。

    2、网站高可用的主要手段就是冗余

    1)应用服务器:负载均衡

    2)存储服务器:对数据进行实时备份

    3、衡量一个系统架构设计是否高可用的目标,就是假设系统中任何一台或者多台服务器宕机时,

    以及出现各种不可预期的问题时,系统整体是否依然可用。

    (三)、伸缩性

    1、伸缩性是指通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求。

    (四)、扩展性

    网站可伸缩架构的主要手段时事件驱动架构和分布式服务。

     (五)、安全性

  • 相关阅读:
    超棒的监控工具 DataDog Splunk 日志易
    API 接口设计 原则
    程序员 架构师 成长 设计 原则
    OAM 继续演进:阿里云携手微软与 Crossplane 社区发布 OAM Kubernetes 标准实现与核心依赖库
    首席架构师 码农总结 互联网整体解决方案
    《不抱怨的世界2》 读后感
    适合开发者的最佳Linux发行版
    大数据 消息 日志
    CRM 线索来源 获客方式
    微服务开发过程中需要注意的若干事项_逍遥子曰
  • 原文地址:https://www.cnblogs.com/ivy-zheng/p/10947225.html
Copyright © 2011-2022 走看看