一 、CDN
1
什么是 CDN
CDN(content delivery network)全称是内容分发网络 。
Internet 超等 快递员(图片、文本、音乐 、影戏 、斲丧 订单、微博。。 。)
2
CDN 的作用
1 、防御入侵,抵抗 攻击 ,包管 服务质量
2、用户体验(控制时延)
CDN 就是尽大概 的镌汰 资源在转发、传输、链路抖动等环境 下访问时延,确保用户快速正确 的访问结果 。
3 、省时、省力、省钱
二 、QunarCache(CDN+Cache)
各人 都知道 CDN 着实 就是架在用户身边的一层署理 ,真正提供服务的是终极 访问到的源站。
那怎样 来防备 CDN 瓦解 导致的大流量回源呢?
1
CDN++
1、多家 CDN 实现资源多节点、多备份 、多保障
2、通过智能 DNS 实现差别 运营商的 DNS 分析 控制 ,包管 访问分流到各家待分配的 CDN
3、多家之间对比服务(服务质量 、售后、代价 等等)
2
CDN + Cache
1、CDN 背面 增长 一层自建 Cache,包管 源站的安全
2 、多地区 摆设 ,实现专属线路的网络上风 和掩护
三、QunarCache 的结果
如许 的架构到底为我们实现了怎么样的掩护 呢?
一家 CDN 挂掉导致大流量涌入我们的 Cache 集群 ,Cache 渐渐 增长的压力正在消化这部分 突发流量,而掩护 了我们的源站免于突发和大流量带来的压力 。
1
Cache 的选型
Squid、Varnish、ATS(Apache Traffic Server) 、Nginx
名称
江湖职位
所属门派
江湖威望
Squid
汗青 久长 ,成熟,老套
资源量较大 ,并发不高
3星:技能 成熟专业,多实例实现
Varnish
初出茅庐知天下三分
热门 会合 ,缓存总量不大
2星:性能高 ,但不得当 我们
ATS
异族高手,高深莫测
全能
2星:功能强大 ,性能好 ,维护本钱 高,有点难
Nginx
十全大补丹,剑走偏锋
全能
2星:不敷 成熟 ,维护本钱 较高
按需而行
1、我们的资源总量大、热门 不会合 、缓存更新频仍 ......
2、选型 Nginx + Squid
四、QunarCache 发展
1
Nginx + Squid Sliblings
该模式有效 的到达 内存的的横向扩展,克制 了资源重复斲丧 及缓存数据的查询时间,但只得当 小集群。
2
Nginx UriHash + Squid
该模式即转嫁了 Cache 的查询压力 ,又实现了 Cache 容量的横向扩展,随着我们的集群扩大,渐渐 代替 原有的模式。
相比原有模式,该布局 起到的作用。
3
Nginx UriHash + Squid 多进程
用过 Squid 的同砚 都知道 ,Squid 固然 长处 很多 ,但却是个性能短版的单进程 服务,以是 我们在原有底子 上通过增长 Squid 进程 来实现性能的提拔 。
那性能上有多大的提拔 呢?
五 、QunarCache 的运维
1
三方检测 ,提拔 QunarCache 的服务体验
相识 用户的访问体验(末了 的一公里)
监控 QunarCache 的服务状态
2
区分业务,多集群独立服务管理
需求差别 ,侧重 点区分
充实 利用 现有硬件资源
3
Saltstack 实现服务上下线
区分集群和底子 硬件的差别
同一 操纵 实现快速摆设
六、QunarCache 改进方向
1
数据期间
网络 CDN 日记 ,并进一步分析
● 访问结果
● 性能数据监控
● 取样报警
2
自助切换
美满 CDN 访问监控,连合 QunarDNS 实现自助故障切换