• 《大型网站技术架构》-读书笔记五:伸缩性架构


    伸缩性:指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力。

    一、伸缩性设计

      1、不同功能进行物理分离实现伸缩

      (1)纵向分离(分层后分离):将业务处理流程上的不同部分分离部署,实现系统伸缩性。

      

      (2)横向分离(业务分割后分离):将不同的业务模块分离部署,实现系统伸缩性。

      

      2、单一功能通过集群规模实现伸缩

    二、应用服务器集群的伸缩性设计

      1、HTTP重定向负载均衡

      

      优点:比较简单

      缺点:浏览器需要两次请求服务器才能完成一次访问,性能较差

      2、DNS域名解析负载均衡

      

      

      3、反向代理负载均衡(应用层负载均衡)-HTTP协议层

      

         

      4、IP负载均衡

      

      5、数据链路层负载均衡

      

     

      6、负载均衡算法

      (1)轮询(Round Robin ,RR)

      

      (2)加权轮询(Weighed Round Robin,WRR)

              根据 应用服务器硬件性能的情况,在轮询的基础上,按照配置的权重将请求分发到每个服务器,高性能服务器能分配更多的请求。

      (3)随机(Random)

        

      (4)最少连接(Least Connections)

      

      (5)源地址散列(Source Hashing)

      

    三、分布式缓存集群的伸缩性设计

       1、Memcached分布式缓存集群的访问模型

      

      2、Memcached分布式缓存集群的伸缩性挑战

          

      3、分布式缓存的一致性哈希算法():一台物理服务器虚拟节点参考值150

      

      

    四、数据存储服务器集群的伸缩性设计

      1、关系数据集群的伸缩性设计:主从复制,数据分库,分表分库

      

               

                 

      2、Nosql数据库的伸缩性设计

      

  • 相关阅读:
    jQuery 插件为什么要return this.each()
    Android中TextView setText int 报错
    局部打印插件 jquery.PrintArea.js
    Jdbc Url 设置allowMultiQueries为true和false时底层处理机制研究
    mysql-unsha1:在未知密码情况下,登录任意MYSQL数据库
    Wireshark实战之抓包MySQL Java客户端
    linux 文件句柄数查看命令
    Java1.8 JDK源码中,对两个类进行 按位与 操作是什么意思
    linux下面覆盖文件,如何实现直接覆盖,不提示
    比特币算法——SHA256算法介绍
  • 原文地址:https://www.cnblogs.com/ivy-zheng/p/10954284.html
Copyright © 2020-2023  润新知