天天看点

QunarCache的应用

作者:闪念基因

一、CDN

1

什么是 CDN

CDN(content delivery network)全称是内容分发网络。

Internet 超级快递员(图片、文本、音乐、电影、消费订单、微博。。。)

QunarCache的应用

2

CDN 的作用

1、防御入侵,抵御攻击,保证服务质量

2、用户体验(控制时延)

CDN 就是尽可能的减少资源在转发、传输、链路抖动等情况下访问时延,确保用户快速准确的访问效果。

3、省时、省力、省钱

二、QunarCache(CDN+Cache)

大家都知道 CDN 其实就是架在用户身边的一层代理,真正提供服务的是最终访问到的源站。

那如何来预防 CDN 崩溃导致的大流量回源呢?

1

CDN++

1、多家 CDN 实现资源多节点、多备份、多保障

2、通过智能 DNS 实现不同运营商的 DNS 解析控制,保证访问分流到各家待分配的 CDN

3、多家之间对比服务(服务质量、售后、价格等等)

QunarCache的应用

2

CDN + Cache

1、CDN 后面增加一层自建 Cache,保证源站的安全

2、多区域部署,实现专属线路的网络优势和保护

QunarCache的应用

三、QunarCache 的效果

这样的架构到底为我们实现了怎么样的保护呢?

一家 CDN 挂掉导致大流量涌入我们的 Cache 集群,Cache 逐步增长的压力正在消化这部分突发流量,而保护了我们的源站免于突发和大流量带来的压力。

QunarCache的应用

1

Cache 的选型

Squid、Varnish、ATS(Apache Traffic Server)、Nginx

名称 江湖地位 所属门派 江湖威望
Squid 历史悠久,成熟,老套 资源量较大,并发不高 3星:技术成熟专业,多实例实现
Varnish 初出茅庐知天下三分 热点集中,缓存总量不大 2星:性能高,但不适合我们
ATS 异族高手,高深莫测 全能 2星:功能强大,性能好,维护成本高,有点难
Nginx 十全大补丹,剑走偏锋 全能 2星:不够成熟,维护成本较高

按需而行

1、我们的资源总量大、热点不集中、缓存更新频繁......

2、选型 Nginx + Squid

QunarCache的应用

四、QunarCache 成长

1

Nginx + Squid Sliblings

该模式有效的达到内存的的横向扩展,避免了资源重复消耗及缓存数据的查询时间,但只适合小集群。

QunarCache的应用

2

Nginx UriHash + Squid

该模式即转嫁了 Cache 的查询压力,又实现了 Cache 容量的横向扩展,随着我们的集群扩大,逐步取代原有的模式。

相比原有模式,该结构起到的作用。

QunarCache的应用

3

Nginx UriHash + Squid 多进程

用过 Squid 的同学都知道,Squid 虽然优点很多,但却是个性能短版的单进程服务,所以我们在原有基础上通过增加 Squid 进程来实现性能的提升。

那性能上有多大的提升呢?

QunarCache的应用

五、QunarCache 的运维

1

三方检测,提升 QunarCache 的服务体验

了解用户的访问体验(最后的一公里)

监控 QunarCache 的服务状况

QunarCache的应用

2

区分业务,多集群独立服务管理

需求不同,侧重点区分

充分利用现有硬件资源

QunarCache的应用

3

Saltstack 实现服务上下线

区分集群和基础硬件的差异

统一操作实现快速部署

六、QunarCache 改进方向

1

数据时代

收集 CDN 日志,并进一步分析

● 访问效果

● 性能数据监控

● 取样报警

2

自助切换

完善 CDN 访问监控,结合 QunarDNS 实现自助故障切换

作者:段凯

来源-微信公众号:Qunar技术沙龙

出处:https://mp.weixin.qq.com/s/bWR0RzeRt5uVUr4taBWSUA