《亿级流量系统架构设计与实战》第一章 大型互联网公司的基础架构

   日期:2024-12-16    作者:xhb273511 浏览:55    移动:http://w.yusign.com/mobile/quote/851.html

内容总结自《亿级流量系统架构设计与实战》

DNS(Domain Name System,域名系统)是互联网中得核心服务,它维护域名与对应IP地址得映射关系,并提供将域名翻译为IP地址得域名解析功能


1、域名服务器分类

按照域名得层级结构,可以把域名分为4种不同的类型

1、根域名(DNS)服务器

根域名服务器是全球互联网的中枢神经,它负责互联网顶级域名的解析,即它学握着全部顶级城名的名称与IP地址的映射关系。目前全球仅有13台IPv4根域名服务器,其中主根城名服务器部署在美国,其余12台辅根域名服务器有9台部署在美国、2台部署在欧洲、1台部署在日本。根城名服务器由美国政府授权的互联网名称与数字地址分配机构(ICANN)统一管理。

2、顶级域名(DNS)服务器
顾名思义,顶级城名服务器负责管理在每个顶级城名下注册的二级城名解析工作,即它可以根据二级域名寻找到二级城名服务器的 IP 地址。

3、权威域名(DNS)服务器
权威域名服务器负责对特定的域名进行解析,它管理顶级域名下的二级域名、三级域名、四级城名等的服务器。从名字中的“权威”可以看出,权威域名服务器最终决定了一个域名到底应该被解析成哪个IP地址,它是DNS 中最核心的部分。
每个域名对应的权威域名服务器都可能不同,每个权威域名服务器仅可解析它负责的域名,比如负责google.com 域名的权威域名服务器无法解析城名apple.com。大型互联网公司一般会自建权威域名服务器,而中小型企业一般会将域名托管给知名的权威域名服务商。


3、HTTP DNS与DNS对比

《亿级流量系统架构设计与实战》第一章 大型互联网公司的基础架构

HTTP DNS 只是将城名解析协议由 DNS 协议换成了 HTTP,原理并不复杂。但是相较于 DNS,这一微小的变化带来了如下好处。

  1. 降低域名解析延迟:通过直接访问 HTTP DNS 服务器,缩短了域名解析链路,不再需要递归查询。
  2. 防止域名劫持:将域名解析请求直接通过IP地址发送至HTTP DNS服务器,绕过运营商本地DNS服务器,避免了域名劫持问题。
  3. 调度精准性更高:HTTP DNS服务器获取的是真实客户端的IP地址,而不是本地DNS服务器的IP地址,即能够基于精确的客户端位置、运营商信息,将域名解析到更精准的、距离更近的IP地址,让客户端就近接人后台服务节点。
  4. 快速生效:当与域名关联的IP地址发生变更时,HTTP DNS服务不受传统DNS技术多级缓存的影响,域名更新能够更快地覆盖到全量容户端。




1、Nginx(七层负载均衡器

Nginx 是一种自由的、开源的、高性能的 HTTP 服务器和反向代理服务器,同时也是IMAP、POP3、SMTP 的代理服务器。Nginx 既可以作为 HTTP 服务器进行网站的发布处理,也可以作为反向代理实现负载均街功能。

反向代理的运行方式是代理服务器对外接收互联网上的客户端请求,然后将请求转发到内部网络的目标服务器,并将目标服务器的执行结果返回给客户端。反向代理对外表现得就像目标服务器一样,客户端并不会知道自己访问的其实是一个代理。

正向代理与反向代理的核心区别就是:正向代理代理的是客户端,反向代理代理的是服务器。

Nginx得负载均衡功能决定了一个HTTP请求最终被路由到哪个服务器实例,而HTTP位于OSI七层模型得底七层(应用层,所以Nginx作为反向代理也常被称为“七层负载均衡器”


2、LVS(四层负载均衡器

Nginx 是一种高性能的服务器,其性能远高手业务服务器。但是Nginx毕竟是一个应用层软件,单台Nginx服务器能承载的用户请求也是有上限的,当日活用户发展到一定规模后,就需 Nginx集群才能顶住压力。既然是集群,那么势必需要引人一个中间层作为协调者,其负责决定将用户请求转发到哪台Nginx服务器。这个协调者需要有比 Nginx 更高的性能,它就是本节的主角:LVS。

LVS (Linux Virtual Server, Linux 虚拟服务器)是一个虚拟的服务器集群系统,从Linux 2.6 版本开始它已经成为 Linux 内核的一部分,即LVS运行于操作系统层面。

由于LVS基于OSI参考模型的网络层,免去了请求到应用层的层层解析工作,而且LVS工作于操作系统层面,所以 LVS 相比于Nginx有更高的性能。LVS 用于网络接人层时也被称为四层负载均衡器。

LVS和Nginx在转发请求时的区别

  1. Nginx 是基于 OSI 参考模型的第七层(应用层)协议开发的,采用了异步转发形式。Nginx 在保持客户端连接的同时新建一个与业务服务器的连接,等待业务服务器返回响应数据,然后再将响应数据返回给客户端。Nginx 选择异步转发的好处是可以进行失败转移(failover,即:如果与某台业务服务器的连接发生故障,那么就可以换另一个连接,提高了服务的稳定性。Nginx 主要强调的是“代理”。
  2. LVS 是基于OSI 参考模型的第四层( 网络层)协议开发的,采用了同步转发形式。当LVS 监听到有客户端请求到来时,会直接通过修改数据包的地址信息将流量转发到下游服务器,让下游服务器与客户端直接连接。LVS 主要强调的是“转发”。

LVS 主要有4种转发模式:NAT模式、FULLNAT 模式、TUN模式、DR模式。


3、LVS+Nginx接入层架构


1、MySQL

  1. 主从架构:一台MySQL服务器作为Master,若干MySQL服务器作为Slave。正常情况下,只有Master处理写数据请求,同时Master与Slave通过主从复制技术保持数据一致
  2. MHA(Master High Availability)架构:依赖多个主从集群搭,发生故障时,自动切换MySQL集群为Master节点提供服务
  3. MMM(Multi-Master Replication Manager For MySQL)架构:MySQl双主故障切换和双主管理得脚本组件。它有两个Master,并实现了这两个Master得高可用
  4. MGR(MySQL Group Replication,MySQL组服复制)架构:MySQL5.7.17版本推出得高可用解决方案。至少由3个MySQL节点组成一个复制组,一个事务必须经过复制组内超过一半得节点决议通过后才能提交

2、Redis

  1. 主从模式
  2. 哨兵模式
  3. 集群模式
  4. 中心化集群架构

3、LSM Tree

LSM Tree ( Log-Structured Merge Tree)是一种对高并发写数据非常友好的键值存储楼型,同时兼顾了查询效率。LSM Tree是我们下面将要介绍的NoSQL数据库所依赖的核心数据结构,例如 Big Table、HBase、Cassandra、TiDB 等。

  1. 文档数据库MongoDB、CouchDB
  2. 列式数据库:BigTable、HBase
  3. 全文搜索数据库:Elasticsearch
  4. 图数据库:Neo4j、Titan




1、注册中心:服务注册

2、RPC:远程过程调用

3、消息中间件:异步、削峰、解耦

本文地址:http://w.yusign.com/quote/851.html    述古往 http://w.yusign.com/static/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关行情
推荐行情
点击排行
{
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号