zoukankan      html  css  js  c++  java
  • 读书笔记(三)

    大型网站核心架构要素

    一,性能

    网站一般性能指标:响应时间,并发数,吞吐量(TPS,QPS,HPS),性能计数器等;

    WEB前端性能优化:浏览器访问优化,CDN加速,反向代理
    应用服务器性能优化:分布式缓存,异步操作,使用集群,代码优化(多线程,资源复用,数据结构)
    存储性能优化:机械硬盘VS固态硬盘,B+树VS LSM树,RAID VS HDFS

    二,可用性

    高可用的目的:保证服务器硬件故障时服务依然可用,数据依然保存并能够被访问
    
    高可用应用:通过负载均衡进行无状态服务的失效转移,应用服务器集群的session管理
    高可用服务:分级管理,超时设置,异步调用,服务降级,幂等性设计
    高可用数据:数据备份和失效转移,CAP原理
    高可用软件质量保证:网站发布,自动化测试,预发布验证,代码控制(svn,git),自动化发布,灰度发布
    网站监控:监控数据采集,监控管理

    三,伸缩性

    不同功能进行物理分离实现伸缩
    单一功能通过集群规模实现伸缩
    
    负载均衡技术:HTTP重定向负载均衡,DNS域名解析负载均衡,反向代理负载均衡,IP负载均衡,数据链路层负载均衡(LVS)
    负载均衡算法:轮询,加权轮询,随机,最少连接,源地址散列
    路由算法:一致性HASH
    关系数据库伸缩性:单表数据量过大时数据库分片,实现:Cobar做集群的伸缩
    NoSQL的伸缩性:HBase架构原理

    四,扩展性

    设计网站可扩展性的核心思想是模块化,并在此基础上,降低模块间的耦合性,提高模块的复用性。
    
    模块化:软件架构师的最大价值
    降低耦合:分布式消息队列(各种MQ)
    可扩展的数据结构:NoSql中的ColumnFamily设计
    分布式服务框架:dubbo(taobao),thrift(facebook)

    五,安全性

    全球70%的Web应用攻击来自XSS和SQL的注入攻击,其它还有CSRF,Session劫持
    
    XSS,SQL注入的防御
    其它常用漏洞:
    error code回显,html注释,文件上传,路径遍历 加密解密技术:单向散列加密,对称加密,非对称加密,密钥安全管理 信息过滤与反垃圾:文本匹配算法(trie tree,多级Hash表),分类算法,黑名单(布隆过滤器)
    别让生活压力挤走快乐~
  • 相关阅读:
    Python图形图像处理库的介绍之Image模块
    python re.sub
    eclipse 安装git插件
    一组神奇的 3D Gif 动图
    互联网颠覆房地产
    一位IT行业高收入者的理财规划方案
    阿里核心系统团队介绍
    大规模SNS中兴趣圈子的自动挖掘
    关于 MySQL LEFT JOIN 你可能需要了解的三点
    Could not connect to SMTP host: localhost, port: 25;
  • 原文地址:https://www.cnblogs.com/cookiehu/p/5068566.html
Copyright © 2011-2022 走看看