大型网站技术架构——读后摘要6

2023-10-24 01:48

本文主要是介绍大型网站技术架构——读后摘要6,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网站的伸缩性架构
网站架构的伸缩性设计
1.不同功能进行物理分离实现伸缩


每次分离都会有新的服务器加入网站来处理特定服务。

再细化:

  • 纵向分离:将业务流程上不同部分分离部署实现系统伸缩性。
  • 横向分离:将不同的业务模块分离部署,实现伸缩性。
2.单一功能通过集群规模实现伸缩

对于用户量非常大的网站,再单一的功能一台服务器也无法满足用户量,所以以集群的方式来分担一台服务器的负载压力

应用服务器集群的伸缩性设计
1.HTTP重定向负载均衡

客户端发送的请求经过HTTP重定向负载均衡服务器,重定向负载均衡服务器会将应用服务器的ip给客户,客户重定向完成访问。缺点:访问太慢,相当于两次请求一次响应,太耗时。

2.DNS域名解析负载均衡

客户通过域名对服务器进行访问,域名请求首先通过DNS服务器,DNS服务器域名对应着一系列ip,DNS服务器会通过算法将其中一个ip返回给客户端,客户端再向指定服务器请求。

另外DNS服务器还支持地理位置域名解析,这样请求就会发往距离比较近的服务器。

3.反向代理负载均衡


反向代理服务器要配置在web服务器的前面,web服务器无需知道用户的ip,它只需与反向代理服务器网络相通;用户的网络要与反向代理服务器相通,这样反向代理服务器就要有两个网卡和两套ip地址。

4.IP负载均衡

在网络层通过修改目标服务器ip来实现负载均衡。

5.数据链路层负载均衡:



常用的负载均衡算法:

  • 轮询:所有请求依次发往每台服务器。
  • 加权轮询:根据服务器性能的不同,高性能的服务器分配更多的请求。
  • 随机:请求随机发往服务器
  • 最少连接:记录每台服务器正在处理的连接数,将新到的请求发往最少连接的服务器上。
  • 源地址散列:根据请求来的ip进行Hash计算,得到对应服务器,这样来自同一台ip地址的请求就会落到同一台服务器上处理,实现回话黏滞。
分布式缓存集群的伸缩性

分布式缓存服务器集群的设计不同于应用服务器集群。因为请求在访问缓存服务器是先找到有缓存数据的服务器,然后再访问服务器,如果缓存服务器集群的服务器很多,请求在找到有相应请求的缓存数据服务器将浪费大量时间。

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

被访问的数据都有key标志,这个标志可以帮你找到对应缓存服务器的ip和端口。

                   


分布式缓存的一致性hash算法(hash环)

如果新加入一台服务器,那么受到影响的服务器就是加入服务器两端的两台服务器。

数据存储服务器集群伸缩性设计
关系数据库集群的伸缩设计

Cobar分布式关系数据库访问代理的应用


Cobar的伸缩有两种:Cobar服务器集群的伸缩和Mysql服务器集群的伸缩。

Cobar实现数据迁移可以利用一致性Hash算法


NoSQL数据库的伸缩性设计

主要看Hbase!!!

这篇关于大型网站技术架构——读后摘要6的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/271897

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。