linux企业级CDN/100万并发架构设计/企业故障案例、网站优化架构原则

高薪思想:财富来源于信息差

什么是cdn?

cdn全称是contenct delivery network内容分发网络

cdn是一套分布式,缓存,集群,范围可以是全球或全国,运行的实质是通过智能DNS获取用户的来源地域以及上网线路

为用户选择一个最接近用户地域以及用户上网线路相同的服务器节点,因为访问节点距离用户地域接近,且运营商线路相同,所以,可以大幅度提升浏览器网站的体验

为什么要用CDN?

CDN生产背景:
企业网络流量不断增加,网站撑不住用户的快速增加

IDC机房:
服务器托管地点

  1. 单线带宽(网通,电信,铁路,教育,政府) 20-30元/M月,cdn大部分使用带线带宽
  2. 多线带宽(BGP带宽)网通,电信,铁路,教育,政府整合在一起了;
    独享,150-1000元/M月,企业用多线机房
    CDN利用这个差异发展起来了

企业使用多线带宽
1.价格高
2.速度慢
3.防护能力弱

特点

  • CDN大部分使用单线带宽
  • 节点都是缓存服务器
  • 利用智能DNS调度用户到最佳最适合的服务器节点

CDN价值:

  1. CDN为企业省成本
  2. 提升企业网站的用户访问体验(相同线路,相同区域,内存访问)
  3. 可以帮企业独挡大部分流量攻击(DDOS)

100万并发架构,如何设计?

总计:100%

1.浏览器,APP缓存(假设为20%还剩80%)
2.设计CDN:挡住95%流量,还剩1.6%
3.网站加上一层varnish缓存 0.16%
4.动态服务器+存储:0.16% 万 (并发1600)–理想状态

尽量把数据放到CDN或者客户的浏览器,减去CDN流量是网站需要设计的架构规模
只需要做并发1600规模的架构方案就可以了(存储服务器数据量并没有改变)

这里curl -I https://www.jd.com (没有看到CDN信息)是因为公司做了CDN嵌套所以这里看不到
在这里插入图片描述

CDN基本要求

不是所有的网站都能用上CDN,正常情况加速业务数据应该存在独立的域名:
img1.jd.ett.com
img2.jd.ett.com
img3.jd.ett.com
video1.ett.org
video2.ett.org
video3.ett.org
要加速的业务一般是图片,附件,视频,js,css等静态元素

DNS服务器上的加速前的AAA记录
:AAA records
img.jd.com IN AAA 124.106.0.21(企业静态web服务器的IP)

我们要进行删除上面记录:
img.jd.com IN AAA 124.106.0.21(企业静态web服务器的IP)

做下面别名解析:
:CNAME records
img1.jd.com IN CNMAE bbs
img.jd.com 3M 1N CNAME img.jd.com.cachecn.com(这个地址必须来自CDN公司配置好的CDN域名,还要告诉CDN公司静态服务器IP地址是多少)

CDN作用与工作原理图(核心:必会)

在这里插入图片描述

  • 设计架构要考虑这一块(或故障解决)

cdn服务提供商架构的关键元素:

  • DNS与智能DNS集群(bind,powerdns,dnspod,F5 —》选IP
  • Cache集群(节点squid–单进程,ats,nginx–京东,varnish)—》提供数据
  • 用户源站(CDN服务的客户)
  • 外围(计费,日志分析,存储,protal展示)

两个衡量CDN服务质量的指标:

  • 回源率:缓存里没有,必须用代理的方式回源站取,回源次数与所有访问次数之比

缓存系统也可以划分出层次,分成一级缓存节点和二级缓存节点。一级缓存配置高一些,直连源站,二级缓存配置低一些,直连用户
回源的时候二级缓存只找一级缓存,一级缓存没有才回源站,可以有效地减少真正的回源

  • 命中率:用户访问的资源恰好在缓存系统里,可以直接返回给用户,命中次数与所有访问次数之比

现在的企业 CDN命中率都在 90% 以上

CDN架构图(设计结合原理图进行设计—每一个公司CDN设计不一样–用户访问-流量并发等性能各不相同)

在这里插入图片描述

  • 重心解决企业速度问题,并发才(根据公司业务需求)等是核心

CDN网络组成

组成:内容缓存设备、内容分发管理设备、本地负载均衡交换机、GSLB设备和CDN管理系统

  1. 内容缓存设备Cache:
    用于缓存内容实体和对缓存内容进行组织和管理。当有用户访问该客户内容时,直接由各缓存服务器响应用户的请求。

  2. 内容分发管理设备:
    负责核心Web服务器内容到CDN网络内缓存设备的内容推送、删除、校验以及内容的管理、同步。

  3. GSLB设备:
    实现CDN全网各缓存节点之间的资源负载均衡,它与各节点的SLB设备保持通信,搜集各节点缓存设备的健康状态、性能、负载等,自动将用户指引到位于其地理区域中的最近服务器或者引导用户离开拥挤的网络和服务器。还可以通过使用多站点的内容和服务来提高容错性和可用性,防止因本地网或区域网络中断、断电或自然灾害而导致的故障

不用CDN技术时,使用GSLB设备可以为用户选择最合适的服务器,但受Web服务器的负荷和传输距离等因素的影响,响应速度依然经常不能满足用户的需求。这一问题的解决方案就是在传输网络上利用缓存技术使得Web服务数据流能够就近访问。内容分发网络(CDN)正是这种思想的一个实现,CDN使用GSLB设备将用户引导到最合适的缓存节点(距离近,负载低),使得用户在访问静态内容时获得更好的体验。

  1. CDN管理系统:
    实现对全网设备的管理,对系统的配置。它不仅能对系统中的各个设备进行实时监控,对各种故障产生相应的告警,还能实时观测到系统中总的流量以及各节点的流量,并保存在系统的数据库中,作为统计分析的基础数据,并对日志文件进行管理、报告。

智能DNS解析原理

企业案例:IDC机房带宽突然暴涨问题

某公司(网站业务)的一个IDC机房带宽流量突然从平时高峰期150M猛增至1000M

该故障的影响:直接导致数百台服务器无法连接,该机房全部业务中断。

企业案例:公司网站(web游戏业务)平时几十M带宽,结果突然跑满100M,持续100M已经很久。

凌晨一点接到报警短信,网站无法访问。立马拿起笔记本上网查看,发现整个机柜的网络都无法正常访问。第一感觉是不是IDC网络出问题了,给机房打电话反馈回来的信息是机房网络正常,但是带宽流量异常(100M带宽的流量峰值已跑瞒)。

该故障的影响:直接导致数十台服务器无法连接,该机房全部业务中断,且故障持续时间长。

企业案例: 公司的CDN源站,源站的流量没有变动,CDN那边的流量无故超了好几个G,不知道怎么处理? 曾遇到过一张图片不到一天,跑了20多T的一张流量。

该故障的影响:由于是购买的CDN,虽然流量多了几个G,但是业务未受影响,但是,这么大的异常流量,持续下去可直接导致公司无故损失数百万元。

三案例分析:

1)IDC带宽被占满的原因很多,常见的有:

a.真实遭受DDOS攻击(遇到过几次,造成影响的不多见,其中还有黑客勒索的案例)。
b.内部服务器中毒,大量外发流量

c.网站元素被盗连,在门户页面被推广导致大量流量产生
d.合作公司来抓数据,如:对合作单位提供了API数据接口

e.购买了CDN业务,CDN猛抓源站少

2)CDN带宽异常,源站没异常。

这类问题基本都是缓存在CDN的数据被频繁访问引起的。解决方法见结尾案例。

  1. CDN带宽异常,源站也异常。

可能原因如公司做推广,大量数据访问,热点数据cache里不全。或CDN问题导致数据回源。影响就是带宽高,后端静态服务器及图片及存储压力大

解决:

  1. 真实遭受DDOS攻击
  2. 内部服务器中毒,大量外发流量。
    看看服务器流量,哪个机器带宽高处理下就好了?

实际解决比这复杂得多,带宽打满,所有监控都是看不到的。
解决思路:联系机房确定机房自身无问题后(机房一般与我们一起排查),机房断开连接外部IP服务器的网线,如负载均衡器,仅保留SERVER,断掉内部服务器出网光关的线路,切断外发流量源头。
查看监控流量服务,判断外发流量的服务器,进行处理

  1. 网站元素被盗连

大规模网站架构优化原则

  1. 离客户端越近折返数据结束访问,效率越高越好
  2. 用内存提供数据访问,而不是磁盘(仅作为存储数据)
  3. 所有同一业务无限接近拆分(横向纵向),soa面相服务
  4. 更多的节点集群应对用户请求(集群高可用)
  5. 降低所有服务之间的关联性(耦合性,异步处理,超时及流量控制–淘宝限流案例)
  6. 服务器深度优化:系统,磁盘,网线,CPU,大内存

网站瓶颈顺序:数据库-》存储系统-》动态服务

下面架构小编后期慢慢更新:

数据库架构瓶颈策略1:增加缓存
数据库架构瓶颈策略2:数据库读写分类(进行高并发)
数据库架构瓶颈策略3:整个库拆分多个小库(系统管理)
数据库深度扩展架构拆分
动静分离架构
多机web动静分离架构与根据域名做动静拆分架构
根据业务进行拆分架构
前端页面缓存架构
web动态服务程序深度拆分架构
页面缓存ESI架构
应用软件数据缓存架构
解决物理单点(增加负载均衡及高可用—四层负载lvs、F5、nginx(对应新设计),haproxy)架构
分布式web数据缓存-CDN网站加速架构
分布式数据库缓存策略及NOSQL策略
动态业务数据增加统一数据库接口架构架构设计
门户网站异步架构策略
静态资源分布式部署:超大规模门户加速CDN应用架构-----新浪公司架构设计案例方式(跨机房分布式部署)
门户新闻,视频业务分布式部署架构
DNS或智能DNS调度动态服务集群部署
门户网站动态程序异步静态化架构
消费者服务集群
分布式存储集群-扩展
NOSQL数据库集群—腾讯架构设计案例
LVS四层负载+keepalive+nginx四七层双结合架构设计–腾讯,京东,淘宝设计策略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/761254.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

13_网络安全

目录 网络安全协议 网络安全协议 PGP协议 网络安全技术 防火墙技术 入侵检测系统 入侵防御系统 杀毒软件 蜜罐系统 计算机病毒与木马 网络安全协议 网络安全协议 物理层主要使用物理手段隔离、屏蔽物理设备等,其他层都是靠协议来保证传输的安全&#xff…

【C++】内存分区

目录 内存分区代码运行前后区别各分区详细解释C内存申请和释放 内存分区 不同的操作系统对程序内存的管理和划分会有所不同。 此处是C内存区域划分主要是针对通用的情况,并不限定在某个特定操作系统上 一般分为4个区(有时把全局区拆分成数据区未初始化…

Go线程调度器

基本结构 字段gcwaiting、stopwait和stopnoted都是串行运行时任务执行前后的辅助协调手段 gcwaiting字段的值用于表示是否需要停止调度 在停止调度前,该值会被设置为1在恢复调度之前,该值会被设置为0这样做的作用是,一些调度任务在执行时只…

阿里云智能编程助手的安装使用

https://help.aliyun.com/document_detail/2590613.html 通义灵码,是阿里云出品的一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、异常报错排查等能力&a…

企业互联网建站源码系统 附带完整的安装代码包以及搭建部署教程

系统概述 企业互联网建站源码吸系统是一款集众多先进功能于一身的建站工具。它提供了丰富的模板和组件,允许企业根据自身需求和品牌形象进行个性化定制,快速搭建出具有独特风格的网站。 代码示例 系统特色功能一览 1.用户友好界面:系统采用…

24 年程序员各岗位薪资待遇汇总(最新)

大家好,我是程序员鱼皮。今天分享 24 年 6 月最新的程序员各岗位薪资待遇汇总。 数据是从哪儿来的呢?其实很简单,BOSS 直聘上有一个免费的薪酬查询工具,只要认证成为招聘者就能直接看,便于招聘者了解市场,…

网络安全 文件上传漏洞-20 第二十关 Pass-20

点击进入第二十关,并选择显示代码: $is_upload false; $msg null; if(!empty($_FILES[upload_file])){//检查MIME$allow_type array(image/jpeg,image/png,image/gif);if(!in_array($_FILES[upload_file][type],$allow_type)){$msg "禁止上传该…

Langchain-实战篇-搭建本地问答机器人-01

项目背景 在这个快节奏的职场世界里,我们每个人都可能在某个时刻,化身为一头辛勤的牛或一匹奔腾的马,面对入职签合同时的迷茫,或是离职时的纠纷,心中难免会涌现出各种疑问。比如: "这份合同里的条款…

Mongodb集群中的分布式读写

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第81篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关…

百元蓝牙耳机推荐2024,百元蓝牙耳机排行榜盘点

在2024年面对琳琅满目的蓝牙耳机选项,消费者往往难以抉择,特别是在预算有限的情况下,如何在众多产品中挑选出既满足质量又符合预算的耳机成为了一个不小的挑战。 为了帮助大家在繁多的选择中找到真正物有所值的百元蓝牙耳机,我们…

vue响应式原理细节分享

在讲解之前,我们先了解一下数据响应式是什么?所谓数据响应式就是建立响应式数据与依赖(调用了响应式数据的操作)之间的关系,当响应式数据发生变化时,可以通知那些使用了这些响应式数据的依赖操作进行相关更…

【JavaEE】JVM

文章目录 一、JVM 简介二、JVM 运行流程三、JVM 运行时数据区1、堆(线程共享)2、Java虚拟机栈(线程私有)3、本地方法栈(线程私有)4、程序计数器(线程私有)5、方法区(线程…

# 音频处理4_傅里叶变换

1.离散傅里叶变换 对于离散时域信号 x[n]使用离散傅里叶变换(Discrete Fourier Transform, DFT)进行频域分析。 DFT 将离散信号 x[n] 变换为其频谱表示 X[k],定义如下: X [ k ] ∑ n 0 N − 1 x [ n ] e − j 2 π k n N X[k]…

.NET 漏洞情报 | 某整合管理平台SQL注入

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

揭秘Wish自养号秘诀:新手卖家如何快速出单?

对于卖家来说,如果想要提升店铺的转化率和销量,有几个关键策略是必不可少的: 一、精心挑选热销产品 成功的第一步在于选品。选择热销产品如同掌握了成功的钥匙。卖家需要深入分析平台用户群体,了解他们的需求和偏好。例如&#…

Tampermonkey 油猴脚本使用教程

Tampermonkey 油猴脚本使用教程 一、Tampermonkey 油猴脚本简介 Tampermonkey 是一款流行的浏览器扩展,它允许用户通过用户脚本增强网页功能或改变网页的外观。它支持包括 Chrome、Microsoft Edge、Safari、Opera Next 和 Firefox 在内的多种浏览器。Tampermonkey…

【C++ 初阶路】--- C++内存管理

目录 一、C/C内存分布二、C内存管理方式2.1 new/delete操作内置类型2.2 new和delete操作自定义类型 三、operator new与operator delete函数四、new和delete的实现原理4.1 内置类型4.2 自定义类型 一、C/C内存分布 int globalVar 1; static int staticGlobalVar 1; void Tes…

大模型+多模态合规分析平台,筑牢金融服务安全屏障

随着金融市场的快速发展,金融产品和服务日趋多样化,消费者面临的风险也逐渐增加。 为保护消费者权益,促进金融市场长期健康稳定发展,国家监管机构不断加强金融监管,出台了一系列法律法规和政策文件。对于金融从业机构…

代码托管服务:GitHub、GitLab、Gitee

目录 引言GitHub:全球最大的代码托管平台概述功能特点适用场景 GitLab:一体化的开发平台概述功能特点适用场景 Gitee(码云):中国本土化的代码托管服务概述功能特点适用场景 功能对比结论 引言 在现代软件开发中&#…

Pickle, SafeTensor, GGML和GGUF

如今,大型语言模型的使用方式有以下几种: 作为 OpenAI、Anthropic 或主要云提供商托管的专有模型的 API 端点作为从 HuggingFace 的模型中心下载的模型工件和/或使用 HuggingFace 库进行训练/微调并托管在本地存储中作为针对本地推理优化的格式的模型工…