Home  >  Article  >  Backend Development  >  高可用数据采集平台(怎么玩转3门语言php+.net+aauto)

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

WBOY
WBOYOriginal
2016-06-13 12:12:43910browse

高可用数据采集平台(如何玩转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交互,主要负责与本地资源交互,那么相对来说,代码的工作量减少了,采集速度也能相应的提高。

 

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn