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

news2024/11/18 1:49:00

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

什么是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设计不一样–用户访问-流量并发等性能各不相同)

在这里插入图片描述

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

智能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.coloradmin.cn/o/1858803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

perfect-scrollbar缩小浏览器窗口滚动条无线滚动的bug

https://github.com/mdbootstrap/perfect-scrollbar/issues/153

【tcomat】聊聊tomcat是如何打破双亲委派模型进行类加载的

双亲委派模型 对于JVM类加载器来说,其实就是如下的code,JDK提供的三个类加载器,每个类加载器都加载自己范围内的类。Boot\EXT\APP 三个。双亲委派一句话就是,先让老爸处理,老爸处理不了,给爷爷。爷爷处理不…

java数据结构-链表经典习题

前言 上一篇讲解了链表的基本操作详解,接下来练习一下链表的应用。 目录 1.删除链表中等于给定值 val 的所有节点。 题解思路 2.反转一个单链表 思路分析 画图分析 代码实现 3.链表的中间结点 思路分析 画图分析 代码实现 4.链表中倒数最后k个结点 第一解决…

IPV6典型实验

实验要求: 1、R1和R2之间使用静态IPV6地址互联 2、R2作为DHCPIPV6服务器给R3分配全球单薄地址 3、R4接口通过R2的RA进行无状态地址自动分配 4、配置静态路由,实现设备直接互访。 R1: ipv6 #系统视图使设备能够处理IPV6报文 interface Gigabi…

《好内容成就好商单—巨量星图内容洞察全量培训课件》

本报告详细阐述了如何通过优质内容挖掘商业机会,包括平台升级规划、内容营销新机、如何做好内容以及怎么选对达人等关键议题。报告中深入分析了抖音内容生态的繁荣,以及如何利用巨量星图平台进行内容洞察和达人选择,以实现高效种草和转化。报告还介绍了多种选人方式和热点洞察工…

《2024年战略管理趋势报告》

本报告由Quantive发布。 《2024年战略管理趋势报告》这份报告深刻剖析了企业在策略管理上的当前状态、面临的挑战以及未来发展的趋势。报告指出,大多数组织在迅速适应市场变化方面存在困难,并且许多企业未能实现其战略目标,显示出策略制定与执行之间存在脱节。报告中不仅强调了…

000005 - HDFS 读写流程

HDFS 读写流程 1 HDFS 写数据流程1.1 HDFS 写数据流程图1.2 HDFS 写数据之网络拓扑 - 节点距离计算1.3 机架感知(副本存储节点选择) 2 HDFS 读数据流程2.1 HDFS 读数据流程图 3 HDFS 如何做到机架感知 1 HDFS 写数据流程 1.1 HDFS 写数据流程图 &#x…

Latex学习之“usefont”用法

Latex学习之“\usefont”用法 一、通俗的解释 \usefont 是 LaTeX 中的一个命令,用于在文档中临时改变字体,其基本语法如下: \usefont{字体编码}{字体族}{字体系列}{字体形状}这样看起来好像蛮抽象,你可能以及晕了,什…

2024-6-24(沉默Netty,MongoDB)

1.Netty概念 Netty 是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性。 Dubbo,Kafka,ES等框架都是基于Netty开发的,可以把Netty理解为进行网络编程的…

一、Jquery入门(超详)

* [5.3 jQuery 对象和 DOM 对象之间的相互转换](about:blank#53_jQuery__DOM__271)* * [5.3.1 jQuery 对象转换为 DOM 对象](about:blank#531_jQuery__DOM__282)* [5.3.2 DOM 对象转换为 jQuery 对象](about:blank#532_DOM__jQuery__295)六、 解决 jQuery 和其他库的冲…

RT-Thread的Finsh实现学习

学习原因 工作中,使用同事开发的调试软件,输入参数打印的函数名就可以打印参数,但看不到代码实现,只能用自己微薄的知识积累去猜一下,之前尝试过,专门写一个函数,去解析编译生成的map文件&#…

【漏洞复现】脸爱云一脸通智慧管理平台 SystemMng 管理用户信息泄露漏洞(XVE-2024-9382)

0x01 产品简介 脸爱云一脸通智慧管理平台是一套功能强大,运行稳定,操作简单方便,用户界面美观,轻松统计数据的一脸通系统。无需安装,只需在后台配置即可在浏览器登录。 功能包括:系统管理中心、人员信息管理中心、设备…

【TensorRT】TensorRT C# API 项目更新 (2):优化安装方式和代码

1. 项目介绍 NVIDIA TensorRT™ 是一款用于高性能深度学习推理的 SDK,包括深度学习推理优化器和运行时,可为推理应用程序提供低延迟和高吞吐量。基于 NVIDIA TensorRT 的应用程序在推理过程中的执行速度比纯 CPU 平台快 36 倍,使您能够优化在…

【MySQL】数据库——事务

一.事务概念 事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行事务是一个不可分割的工作逻辑单元,在数…

小白学python(第一天)

在有了C语言的基础后,我们学python会变得相当容易,毕竟c生万物,废话不多说,直接进入我们的正题 课前准备 Python环境的搭建以及Pycharm的安装 python环境安装 Download Python | Python.org 因为我的电脑是windows,…

Idea启动服务报 Command line is too long

一、背景 合不同分支代码后,启动服务报 Error running Application, Command line is too long, Shorten the command line via JAR manifest or via a classpath file and rerun. 没有在意,然后点击了manifest 来进行 二、问题 然后自己在重新启动&…

终于有人说清楚CIF术语了‼️

什么是CIF? CIF,全称Cost, Insurance, and Freight (成本、保险费加运费),是一种国际贸易术语,用于海运和内河运输。按照CIF条款,卖方的交货义务在装运港当货物越过船舷时完成,但卖方需承担将货物运至指定…

Hive基础知识(十八):Hive 函数的使用

1. 系统内置函数 1)查看系统自带的函数 hive (hive3)> show functions; Time taken: 0.085 seconds, Fetched: 289 row(s) 2)显示自带的函数的用法 hive (hive3)> desc function upper; OK tab_name upper(str)- Returns str with all characters…

this.$prompt 提示框增加文本域并修改文本域高度

2024.06.24今天我学习了如何对提示框增加文本域的方法&#xff0c;效果如下&#xff1a; 代码如下&#xff1a; <script>methods:{reject_event(){this.$prompt(驳回内容, 提示, {confirmButtonText: 确定,cancelButtonText: 取消,inputType: textarea,inputPlaceholder…

手工微调embedding模型,让RAG应用检索能力更强

BAAI/bge-small-en 目前HuggingFace的MTEB(海量文本Embedding基准)排行榜上排名第一的Embedding模型是big-large-en&#xff0c;它由北京人工智能研究院(BAAI&#xff0c;智源)开发。它是一种预训练的transformer模型&#xff0c;可用于各种自然语言处理任务&#xff0c;如文本…