Cache服务器通信协议CARP

发布时间:2020-07-07 21:05:45   来源:网络


CARP(Cache Array Routing Protocol)本质上是一个分布式的缓存协议,通过建立哈希函数用于划分Cache服务器集群的URL空间。CARP的核心是为集群定义了一张Cache服务器阵列成员表,以及一个用于向Cache服务器上分发缓存URL信息的哈希函数。CARP为用户提供Web对象URL的获取路径,该路径是根据服务器阵列成员的名称和相应的URL内容通过哈希操作而产生的,这就意味着对于任何特定的URL请求,都能够准确地知道其所需的信息存储在阵列中哪个Cache服务器上,而不用理会这是一个此前刚刚被请求并被缓存的信息,还是首次被点击需要传递和缓存的信息。
 
CARP通过哈希算法将用户对URL的请求准确路由到服务器阵列中的任一成员上,消除了阵列中重复的缓存数据,实现了对Cache资源的高效定位。因为无须考虑更多的不可逆性和加密要求,CARP采用的算法非常简单,具有极高的性能。
 
由于CARP被很多商用系统使用,我们来详细了解一下它的工作过程。首先,对cache服务器阵列中的各个成员的名称字符串实施逐位左循环移动若干位的操作形成其对应的哈希ID,这些信息将被补充到阵列成员表中,并在每台服务器中保存;其次,对众多的URL字符串采用类似的算法进行操作,获得相应的URL哈希值;然后,每个URL哈希值都要和各台服务器的哈希ID做异或操作并乘以一个常数,其得到的乘积再逐位左循环移动指定位数以获得相应的分数;最后,CARP对分数值进行大小比较,并最终将URL对应的内容分配到与之操作具有最高分数的服务器上。在某台 Cache服务器收到用户的URL请求时,它会将该URL对应的URL哈希值与本地保存的集群阵列成员表中各台服务器的哈希ID进行哈希运算,再根据分数的高低判定该URL内容应该在哪台服务器上。
 
考虑到不同Cache服务器的处理能力差异,CARP在哈希算法中还引入了负载因子,以明确阵列中不同服务器能够承担的工作负载并为其分派合适的URL缓存内容,实现性能的优化。
 
CARP是一种紧耦合的Cache通信方式,相比较基于网络消息的松散耦合的Cache通信,CARP的主要优势体现在:
 
(1)无须资源查询的请求和应答过程,避免网络影响,降低传输开销。
 
(2)消除了重复缓存数据,系统中每个URL内容只保留一份,节省空间。
 
(3)具有更好的扩展性,因为无须和众多其他Cache服务器进行网络交互。
 
(4)可以灵活增删服务器节点,哈希算法的应用能够最小化节点数量变化导致的数据分布影响。
 
(5) 能够确保所有的URL数据都能够有效地缓存在系统中。
 
CDN互联专业提供国内外高防cdn加速服务
 
猜你喜欢