网络爬虫项目开发日志(二):爬虫架构设计

架构设计原则:

      1、不过度设计,所有设计都是本着服务业务的初心。

      2、保留足够的可拓展性

      3、开发成本降至最低(学习成本+开发时效+开源技术优先+去IOE)


架构设计计划:

       一言不合,先上图,下面是爬虫系统架构目标,分为三个阶段如下:


一期:

      业务上的需求是,按需爬取网页,而且查询的体量也会很小,因为公司业务刚刚起步,所以OK,我们架构的侧重点就是查询的时效,也就是爬取并返回结果的时效上了。

所以两点,1)爬取的话尽量不用webriver,直接采用httpclient提起请求;2)通过MQ来解耦爬取层和DAL持久层

     所以,一期我们的系统流程如下,所有的后台开发都是模块化,方便后期拓展,MQ选型初步定在Redis。


但是,经过实际实施过后,我们发现以下两个问题

1、每次接口请求,都去爬取的话会极大的增加响应RT,带来的用户体验非常差。

2、RestFul接口端和Spider爬虫业务耦合太紧密,不利于后期业务的拓展。

针对这两点,我们作出以下两点改动:

1、我们的接口服务端首先去DB查询记录直接返回给前端,假如DB中没有相关记录,首先我们会返回前端查询失败,

于此同时我们推一条消息到MQ队列中,由消费端去做爬取和持久化的操作,时候会告知前端我们已经爬取入库成功。

2、在Restful接口和MQ之间加一个ServiceDispatch层用来转接查询请求的,前端只需要传查询参数+任务类别之类的信息过来,

ServiceDispatch会发送对应的消息到指定的Topic中。

流程图演化如下:

所以,架构1.0展示如下:

开工!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值