基于微服务架构的分布式爬虫系统设计与应用

来源 :南京邮电大学 | 被引量 : 0次 | 上传用户:KOUHUIKING
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着社会经济的飞速发展,互联网应用已经成为人们日常生活中的一部分,及时准确地获得网络应用数据也变得越来越重要。网络爬虫作为一种通过对互联网数据进行精确信息抓取来满足用户对特定数据需求的计算机技术,也面临着巨大的机遇与变革,在这样的技术背景下早期的网络爬虫技术已难当重任。论文分析了已有的爬虫系统在技术实现上的不足之处,根据大数据时代的海量页面数据抓取需求设计了一套基于微服务架构的分布式爬虫系统,采用了Spring Cloud微服务框架,实现了爬虫系统不同微服务模块之间的架构隔离;不同微服务之间采用消息中间件或者远程调用进行数据通信,以此来提升分布式爬虫系统的可用性。本课题的主要工作包括设计并实现了分布式系统环境下的全局唯一ID生成算法;基于布隆过滤器和Redis的URL双重判重机制;分布式场景下基于客户端的负载均衡算法策略;分布式场景下应对海量请求的限流算法策略;利用基于线程池的多线程爬取以及采用动态代理池技术应对反爬虫来提升爬虫的抓取效率和成功率;页面解析微服务采用基于CSS选择器的自定义页面数据提取以及基于Redis的消费端防止重复消费机制;应对海量数据存储场景实现了基于Mongo DB的数据库副本与分片、基于Redis哨兵集群与持久化存储以此确保高可用。通过实验测试,基于微服务架构的分布式爬虫系统,既能承载海量用户的爬虫请求,又能满足用户的不同数据提取需求,同时系统的可维护性和可拓展性能力又强于传统爬虫系统,达到了系统设计要求。
其他文献
利用废渣生产的硼泥陶粒作为粗骨料,河砂、硅锰渣为细集料,以粉煤灰作活性混合材,掺入一定量的水泥、植物纤维,生产轻骨料混凝土。
强化学习通常被认为是决策任务的一般形式,与动态规划和博弈论密切相关。多智能体强化学习是多智能体系统研究领域的重要分支,其将强化学习技术和博弈论应用于多智能体系统,
罗恩·克拉克的《教育的55个细节》所描述的都是普通、平常被人们忽略的细节,而就是这些细节改变了这些学生。从他的细节教育里也能透析出我们的小学教育可以从细节入手,在
地铁开挖施工过程中,会扰动周围岩土体,致使地层发生沉降变形,进而引起地面及管线开裂、周边建筑物基础沉降,情况严重时会引起塌方事故。必须对地铁施工过程引起的地层变形进