WWARE给您带来光速体验,全面超越中国互联网(网站)技术

——系统架构 完全公开                                    

 

     目在国内无论从访问量还是速度的佼佼者当数淘宝和京东这两家巨头。京东和淘宝维护自家的网站架构每年要投入数十亿的成本。众所周知淘宝和京东无论从服务器的硬件和带宽上都是无人能与媲美的。

     我们拿我们的技术来和京东和淘宝来对比一下,首先分析下我们与京东淘宝的环境的不同。

          1、我们的测试页面是拷贝的京东和淘宝的页面,所以从页面内容来看是同等的。

          2、我们的测试服务器为阿里云的云主机,硬件偏低(2G内存,2核),而淘宝和京东的硬件却远远超过我们。

          3、淘宝和京东的访问量比较大,我们的访问量比较小,所以我们选择的是京东和淘宝的低峰值时段(如凌晨)。

          4、我们所测试的页面同样是动态页面,和淘宝京东的首页无异。

  从上面的异同可以分析到我们与京东淘宝的不同的是访问量和硬件的差异,姑且把两者看作是相对平等的。我们来评估下影响用户体验速度的指标:

  DOMContentLoaded  time:指加载并分析完完页面,但是没有下载完样式表、图片以及子框架(iframe)的时间。这个时间也是页面开始有变化的时间,但是此时呈现出来的页面是残缺的,处于加载状态的。影响这个值的主要因素为服务器的计算能力以及代码的优化程度、带宽和延时时间。我们方便记忆把这个值简称为DT。

load time:是指对一个页面从加载到全部处理完成的时间。这个时间,度量了页面最终完整呈现所需要的时间。影响这个值的因素有DT以及页面代码质量。我们把这个值简称为LT

LT越小越好,它度量了服务器以及客户端综合处理的效率——也就是页面完整呈现在用户面前的时间。DT我们可以通过优化TCP/IP,优化服务器代码来解决,但是最根本的手段还是优化服务器网络环境。而客户端处理的时间,也就是LT和DT这两个值的差别,我们称为DIT。这个值度量了客户端代码的质量,提升这个值只有两个方法,一是提升客户端设备——这显然是不可能的,二是优化客户端代码。wware默认不加载资源,在DT时间段内,根据当前显示的区域,调整需要加载的资源,因此其DIT明显小于其它方案。

        DIT是一个关键指标,如果这个值足够大,用户体验会十分糟糕。为了应对这种情况,传统上,通过制作APP,将所需资源提前下载到本地,来降低DIT。但是这个方案极大的增加了推广成本——APP与轻应用的推广成本相差上百倍。为了直观理解下面的图,您可以在手机上使用3G/2G分别访问测试页面,就可以体会到巨大的用户体验差异了。

140x140

从上图可以分析出我们的DT都要比京东和淘宝的高一些,这是因为我们的服务器硬件及网络环境的性能差造成的(可以查看服务器测试了解我们优异的服务器性能)。但是我们的DIT极低,从而使得LT在宽带环境下比其它对比样本表现好,进入窄带(3G/2G),由于客户端速度限制引发的服务器带宽优势在下降,我们的综合表现逐步超越淘宝和京东。但是我们的网站性能无论从哪个角度,都全面超越了新浪。

为什么这么快

如果您看过我们的“系统架构图”之后,肯定就没有这个疑问了。

客户端

  • 优化缓存——让你应用的数据和逻辑完全避免使用网络
  • 减少回应时间——减少一连串请求-响应周期的数量
  • 减小请求大小——减少上传大小
  • 减小有效负荷大小——减小响应、下载和缓存页面的大小
  • 优化浏览器渲染——改善浏览器的页面布局

服务端

  • 定义了一套以8位字节为基础的索引文件格式。
  • 在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。
  • 优秀的面向对象的系统架构,使得对于WWare扩展的学习难度降低,方便扩充新功能。
  • 设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。
  • 已经默认实现了一套强大的查询引擎,用户无需自己编写代码即可使系统可获得强大的查询能力,WWare的查询实现中默认实现了布尔操作、模糊查询(Fuzzy Search)、分组查询等等。

基础性能对比

动态文件

  • 并发用户数达到了72万(729307)
  • 吞吐率达到了82万(826821)
静态文件

NGINX只启用一个worker, 在15% CPU和1MB内存占用的情况下,可以得到11,500 RPS (requests per second)。

同时我们添加了memcache for nginx模块(可选,需要大内存),以大幅提升吞吐率。

常见问题解答

: 如果1台服务器能容纳1万人,那么是不是50台可以容纳50万人,多台服务器之间如何进行数据同步。
: 我们提供的是云计算服务是一站式的完整解决方案,包括资源获取、性能优化、问题诊断、安全备份、管理监控等各个方面。这样一来,您不用考虑“购置新服务器”以及“多服务器如何进行数据同步”这些传统问题,可以将有限的资源专注在自身产品研发和业务拓展上。我们的性能是超一流的,性价比是超高的。了解详情