CDN 技术研究——Cache集群通信

来源:互联网 发布:fm 迭戈科斯塔数据 编辑:程序博客网 时间:2024/06/07 23:43

CDN 技术研究——Cache集群通信


Cache 集群通信

Cache 集群通信可以分为松散耦合和紧密耦合两种方式,典型代表:

  • 松散耦合

    • ICP
    • HTCP
    • Cache Digest
    • Cache Pre-filling
  • 紧密耦合

    • CARP

ICP

RFC 2186 Internet Cache Protocol

ICP 一般使用 UDP 协议进行承载,用于 Cache 服务器之间相互查询资源信息,应答中包含命中(hit)或者失效(miss)信息。

不包含 HTTP 中资源相关的头(如访问控制,缓存指示),因此命中的情况下,使用 HTTP 获取资源时仍可能出现失败

HTCP

RFC 2756 Hypertext Caching Protocol

HTCP 可以使用 UDP 和 TCP 协议进行承载,UDP 必须支持,TCP 主要用于协议调试。与 ICP 不同,HTCP 请求和应答中可以包含完整的 HTTP 头文件,避免命中 Cache 的情况下使用 HTTP 获取资源失败问题

HTCP 包含:

  • 头信息:消息长度,协议版本
  • 数据:HTCP 协议中的具体内容
  • 认证:可选,一般选用 HMAC-MD5 共享密钥认证

Cache Digest

Cache 服务器将内容通过摘要算法生成本 Cache 服务器的 Cache 内容信息摘要文件

其它 Cache 服务器通过推或拉的方式获取该摘要文件。当外部请求资源时,Cache 服务器可以通过摘要文件判断资源在哪台 Cache 服务器上

为防止摘要文件被篡改,一般使用拉的方式从相邻 Cache 服务器获取 Cache 信息摘要文件

Cache Pre-filling

使用 IP 多播网络向多播组中的所有 Cache 服务器推送 Cache 内容,从而实现集群中各台服务器保存内容的同步。

目前没有统一标准,基于实际场景自行开发

CARP

Cache Array Routing Protocol,是一个分布式的缓存协议

为集群定义一张 Cache 服务器阵列成员表,以及用于向 Cache 服务器上分发缓存 URL 信息的哈希函数。通过对 URL 进行哈希运算,可以定位 URL 对应的资源在哪台 Cache 服务器上

这种方式实际就是通过对 URL 的 Hash 运算决定资源存放的位置。和一致性 Hash 算法思路一样,一致性 Hash 可以解决中节点变化导致 Hash 命中率下降问题

0 0
原创粉丝点击