Nginx服务之Tengine服务


纸上得来终觉浅,绝知此事要躬行。

Nginx服务之Tengine服务


Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

1. 特性介绍


2. 使用说明


3. 模块文档


4. 一致性 hash 算法

通常代理服务器只负责调度而不负责缓存,防止压力过大成为单点故障,缓存交给缓存服务器组处理。而代理服务器如何提高缓存命中率就是一个关键了。通常简单的做法就是对客户端请求的URL进行hash计算,其值除以缓存服务器的数量取模。这样就能保证同一个请求始终由同一个缓存服务器提供。

但是这个调度算法有个严重的缺陷,那就是其中任意缓存服务器挂了,就会导致几乎所有缓存全部失效了,添加任意缓存服务器类似。后来伯克利大学的一个教授,提供了一致性hash的解决方法。

该方法特点就是使用了哈希环,特点是除以数量级非常大(2^32),对客户端请求URLhash值和缓存服务器名称的hash值都是用这个量级,让它们统统落到哈希环上,对应每个缓存服务器都能够均匀的分散客户端请求的缓存。之后添加或删除任意缓存服务器都会导致以少部分缓存失效。

Nginx服务之Tengine服务

同样,该算法会导致服务器缓存的偏斜,缓存分布不均匀。解决这个问题就需要引入虚拟节点,将缓存服务器映射为大量在哈希环上均匀分布的点,之后即使添加或删除任意缓存服务器都不会导致缓存偏斜了。

Nginx服务之Tengine服务


文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !
  目录