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

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

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

           新年了,但愿有个新的开始。技术+团队管理都有新的突破吧,在新的一年对本身好些,不能再继续搞基下去。数据库

问题出发点:windows

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

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

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

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

解决方案:.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交互,主要负责与本地资源交互,那么相对来讲,代码的工做量减小了,采集速度也能相应的提升。

 

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

相关文章
相关标签/搜索