千万级数据的分类搜索引擎(二)

来源:互联网 发布:php wget 下载文件 编辑:程序博客网 时间:2024/05/18 02:36

搜索系统前台组件-------轻量级的WebServer

    轻量级的WebServer是我们自己开发的一个轻量级网页服务器,实现了WebServer的一些最基本的功能,采用epoll模型处理网络通信,将客户的URL请求直接通过消息队列传递给后台的业务逻辑处理进程,吞吐率非常高,性能大概是Apache+CGI方式的3,4倍。

整个流程如下:

(1)WebServer接受用户请求

(2)用URL做Key查询SHM中是否存在Cache记录,如果命中,则直接获取网页,返回。不命中则到(3)

(3)将请求的URL存放到MSG-Q中

(4)业务逻辑进程轮询MSG-Q,获取URL

(5)业务逻辑进程根据URL像后台发送搜索请求,获取返回结果,生成一个HTML页面,存放到MSG-Q中

(6)WebServer轮询MSG-Q,获取到网页内容后,返回给用户,同时存放在Cache中

(7)cache会根据业务逻辑进程设定的时间定期淘汰过期的网页

实际使用中,cache对于纯静态的页面命中率可以达到90%以上,由于整个网页cache,所以访问速度相当快。对于变动频繁的页面,比如搜索,命中率在30%左右

 

原创粉丝点击