《大型网站技术架构》-读书笔记五:伸缩性架构
伸缩性:指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力。
一、伸缩性设计
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数据库的伸缩性设计
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏