高可用数据采集平台(如何玩转3门语言php+.net+aauto)

同类文章:高并发数据采集的架构应用(Redis的应用)

吐槽下:本人主程是PHP,团队里面也没有精通.net的人才,为了解决这个平台方案,还是费了一部分劲。

           新年了,希望有个新的开始。技术+团队管理都有新的突破吧,在新的一年对自己好些,不能再继续搞基下去。

问题出发点:

´随着软件的日益强大,用户的使用需求越来越多,用户也希望众多数据进行整合,来达到资源的合理应用。

´有些数据资源需要抓取网页的形式来采集到数据。

´采集应用不统一,没有良好的管理程序,杂乱无章。

´采集应用经常性无响应,无相应的中断程序,极大照成应用的不稳定性。

解决方案:

为了解决上述问题,提出了如下的解决方案,主要是使用了服务平台这个概念。

image

 

数据采集服务:使用C#创建windows服务。(aauto至今没找到相应的创建windows服务的实例)

       功能包括:

           1. 定时请求待采集事项,并放入待采集队列

           2. 多线程定时通过API上传资源数据以及其它状态信息。

           3. 定时平台监控,采集应用时间过长发出中断通知,通知无响应强制关闭应用并且重新启动。

           4. 上传心跳信息,保证数据采集服务正常运行。

采集应用:使用AAuto创建应用,其实使用.net也是可以创建采集应用的,主要考虑到aauto语言这块团队相对来说成熟点,而且已有现成的应用了,只需要稍微修改下就可以和服务平台对接了。

         功能包括:1. 采集数据资源放入本地数据库,比如sqlite。

                      2. 保存耗时信息,通过耗时的均运算服务平台可以决定多久发出中断通知,以及可以预测多久时间可以完成工作。

状态应用:主要是辅助应用。

          功能包括:

              1) 可以查看处理进度

              2) 可以查看数据上传进度

              3) 可以查看待处理进度

              4) 可以查看应用耗时信息

 

通过以上的解决方案来看:服务平台作为统筹工作者,负责与PHP API进行交互,相对来说对于采集应用来说相对独立,所以有很好的解耦性,同时又保证了稳定性。

        采集应用不再负责与PHP API交互,主要负责与本地资源交互,那么相对来说,代码的工作量减少了,采集速度也能相应的提高。

 

具体代码实现:可以关注下后期的文章吧,我也会进量把代码贡献出来。觉得不错的给个赞吧,新的一年新气象。

posted @ 2015-01-01 08:42  oShine.Q  阅读(2325)  评论(6编辑  收藏  举报