一、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 实现自助故障切换