• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

    Dodder: 一个支持集群部署的分布式 DHT 网络爬虫

    原作者: [db:作者] 来自: 网络 收藏 邀请

    开源软件名称:

    Dodder

    开源软件地址:

    https://gitee.com/xwlcn/Dodder

    开源软件介绍:

            ________      ____________________  __ \___________  /_____  /______________  / / /  __ \  __  /_  __  /_  _ \_  ___/_  /_/ // /_/ / /_/ / / /_/ / /  __/  //_____/ \____/\__,_/  \__,_/  \___//_/     一个支持集群部署的分布式 DHT 网络爬虫。

    快速开始

    环境依赖

    演示地址

    https://dodder.cc

    announce_peer messages:announce_peer

    单机运行环境:

    • CPU: Intel Xeon E3-1230 v3 - 3.3 GHz - 4 core(s)
    • RAM: 32GB - DDR3
    • Hard Drive(s): 2x 1TB (HDD SATA)
    • Bandwidth: Unmetered @ 1Gbps

    更新日志

    • 2019-10-25
      • 升级目前部署在服务器上的 MongoDB,之前 3.6.8 版本频繁挂掉无错误日志
      • 使用 MongoDB 连接池
      • 去掉 indexMessages 主题消息,索引与入库使用 torrentMessages 同一个主题消息(使用不同分组),减少网络传输以及磁盘占用
      • 去除种子信息下载之前的 MongoDB 去重查询(几千个下载线程就是几千个并发查询,过于耗费资源)
    • 2019-10-20
      • 优化爬虫速度,新增阻塞线程池用于下载种子信息(降低内存使用)
      • 40万数据时(日爬取35w+新数据)
    • 2019-10-13
      • 数据存储到 MongoDB,Elasticsearch 只做索引
      • 升级各个环境依赖的版本
      • 优化数据存储服务,将 Kafka Torrent 的入库和索引消息改为手动提交模式,防止数据丢失
      • 进行两台服务器分布式部署测试,目前成功部署运行中:
        1. A 服务器部署微服务:dht-server、store-service (服务器有限,所以所有环境依赖比如 Elasticsearch 全在这台机器上)
        2. B 服务器部署微服务:dht-server、download-service、dodder-web
    • 2019-04-17
      • 初始版本

    整体架构

    架构图

    说明:项目中的dht-serverdownload-servicestore-service都是可以集群部署的,dht-server负责爬取 DHT 网络中的 info_hash,然后写入到 Kafka 消息队列中去,download-service负责读取 info_hash 信息到指定 ip 去下载种子文件的 metadata(集群部署时,注意设置好 kafka 主题的分区数量,分区数量 >= 服务部署个数)。下载好的 metadata 解析出文件信息封装成 Torrent 对象写入 Kafka 的torrentMessages主题中去,store-service负责读取 Torrent 存储到 Elasticsearch 中去。

    去重:Redis 第一次去重,MongDB 与 Elasticsearch 采用 upsert 插入数据防止重复插入。

    部署

    前面的环境全部搭好之后,clone 整个项目到本地,如果是集群部署请修改各个服务模块里面的一些 ip 地址参数,我这里服务器有限,只拿了一台服务器单机部署,集群部署有问题的欢迎提 issue。

    注意

    dht-server 需要公网 IP 才能爬取到 info_hash


    鲜花

    握手

    雷人

    路过

    鸡蛋
    该文章已有0人参与评论

    请发表评论

    全部评论

    专题导读
    热门推荐
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap