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

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

时间:2024-08-10 17:27:25浏览次数:15  
标签:架构设计 HTTP Nginx 域名 基础架构 DNS IP地址 亿级 服务器

大型互联网公司的基础架构

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

一、DNS

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。大型互联网公司一般会自建权威域名服务器,而中小型企业一般会将域名托管给知名的权威域名服务商。

4、本地域名(DNS)服务器
本地域名服务器不属于域名层次结构中的任何一层,但是它对 DNS 非常重要,相当于域名解析的缓存。任何一台主机在进行网络地址配置时,都会配登一台域名服务器作为本地域名服务器,它是主机在进行域名查询时首先要查询的域名服务器。本地域名服务器一般由网络运营商提供,它作为主机访问网络时域名解析的总代理,会将域名解析结果缓存到本地,以便加速主机后 面的域名解析过程。


2、域名解析过程




二、HTTP DNS

1、DNS存在问题

  1. 域名解析需要递归查询,势必带来高延迟。理想情况一次DNS解析需要几毫秒甚至几十毫秒,但是实际应用中常常出现需要1s以上的情况
  2. 由于本地域名服务器是分地区、分运营商的,不同运营商实现的DNS解析策略不同。而且,由于权威域名服务器获取的是本地域名服务器的IP地址,而非客户端的IP地址,所以在定位客户端的地理位置时不一定准确,最终域名解析得到的IP地址对于客户端而言可能不是距离最近、最有的访问点。更有甚者,某些运营商为了节约资源,会直接将域名解析请求转发到其他运营商的本地域名服务器(即“域名转发”),这样做的后果就是用户得到了与其网络运营商不相符的IP地址,用户访问网络请求变慢。
  3. 更重要的是DNS劫持问题。DNS劫持是一种互联网攻击方式,通过干预域名服务器把域名解析到错误的IP地址上,以达到用户无法访问目标网站或访问恶意网站的目的。很多知名的互联网公司备受 DNS 劫持的困扰,运营南可能基于本地域名服务器做DNS劫持,黑客可能篡改计算机Hosts文件做DNS劫持。

2、HTTP DNS解析流程

为解决不同网络运营商的用户访问同一个HTTP DNS服务器的IP地址的延迟。HTTP DNS服务器供应商会采用如BGP(边界网关协议)等手段让这个IP地址在全国各地都做到就近访问。


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、消息中间件:异步、削峰、解耦

4、多机房:主备机房、同城双活、两地三中心

标签:架构设计,HTTP,Nginx,域名,基础架构,DNS,IP地址,亿级,服务器
From: https://blog.csdn.net/qq_44377709/article/details/141093263

相关文章

  • 甄选范文“论数据湖技术及其应用”软考高级论文系统架构设计师论文
    论文真题请围绕“数据湖技术及其应用”论题,依次从以下三个方面进行论述。1.概要叙述你所参与管理或开发的软件项目,以及你在其中所承担的主要工作。2.详细阐述数据湖技术,并从主要数据来源、数据模式(Schema)转换时机、数据存储成本、数据质量、面对用户和主要支撑应用类型......
  • 论软件设计方法及其应写作框架软考高级论文系统架构设计师论文
    论文真题软件设计(SoftwareDesign,SD)根据软件需求规格说明书设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及程序流程等,形成软件的具体设计方案。软件设计把许多事物和问题按不同的层次和角度进行抽象,将问题或事物进行模块化分解,以便更容易解决问题。......
  • 甄选范文“论软件设计方法及其应”软考高级论文系统架构设计师论文
    论文真题软件设计(SoftwareDesign,SD)根据软件需求规格说明书设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及程序流程等,形成软件的具体设计方案。软件设计把许多事物和问题按不同的层次和角度进行抽象,将问题或事物进行模块化分解,以便更容易解决问题。......
  • 京东小程序数据中心架构设计与最佳实践
    一、京东小程序是什么京东小程序平台能够提供开放、安全的产品,成为品牌开发者链接京东内部核心产品的桥梁,致力于服务每一个信任我们的外部开发者,为不同开发能力的品牌商家提供合适的服务和产品,让技术开放成为品牌的新机会。“OnceBuild,RunAnywhere”,一个小程序可以在多个A......
  • Omnissa Horizon 8 2406 (8.13) 发布下载 - 虚拟桌面基础架构 (VDI) 和应用软件
    OmnissaHorizon82406(8.13)发布-虚拟桌面基础架构(VDI)和应用软件之前称为VMwareHorizon,通过高效、安全的虚拟桌面交付增强您的工作空间请访问原文链接:https://sysin.org/blog/omnissa-horizon-8/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgHorizon......
  • 深度解读KubeEdge架构设计与边缘AI实践探索
    摘要:解读业界首个云原生边缘计算框架KubeEdge的架构设计,如何实现边云协同AI,将AI能力无缝下沉至边缘,让AI赋能边侧各行各业,构建智能、高效、自治的边缘计算新时代,共同探索智能边缘的新篇章。本文分享自华为云社区《DTSETechTalk|第63期:KubeEdge架构设计与边缘AI实践探索》,作者:......
  • 秒懂斐波那契:算法优化实现21亿级速度突破
    针对斐波那契数列算法进行详细介绍和优化,从最简单的递归方法到更高效的迭代、缓存、动态规划、公式推导和矩阵解法,最终达到了时间复杂度为O(logn)的快速幂矩阵解法来感受算法的神奇之处,最后可以看到如何实现在输入n=2100000000(21亿)时仅耗时0.02毫秒的最佳效果。一、回顾斐波......
  • 大厂的风控引擎架构设计
    1架构师能力思维模型全局思维抽象思维2新需求的思考路径需求是否合理,是否能解决问题?能划分多少个子系统?每个子系统能划分多少个模块?这个系统需要可靠性吗,需要扩展能力吗?成本需要控制吗?表如何设计?API如何设计?模块之间如何通信?3风控引擎设计的核心点架构会围绕核心点......
  • 1000W长连接,如何建立和维护?千万用户IM 架构设计
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • MongoDB两地三中心集群架构设计、全球多写集群架构设计
    文章目录高级集群架构设计两地三中心集群架构设计容灾级别两地三中心方案:复制集跨中心部署两地三中心部署的考量点两地三中心复制集搭建环境准备整体架构配置域名解析启动5个MongoDB实例初始化复制集配置选举优先级启动持续写脚本(每2秒写一条记录)测试结果总结全球多......