takeern / spiderEmail

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

spiderEmail

版本迭代

  • v 1.0.1 版本更新
  • 子节点(主动或意外)断开后,父节点检查到该子节点状态并断开。

实现方案:

  1. 主从节点心跳通信失败,任务子节点断开。(不采用多次grpc失败作为判定,有利于框架逻辑和调度器逻辑分开)
  2. 主节点将改ip,从 ip_list 移除,并将该信息下发到各个调度器
  3. 调度器收到该 ip 移除,将该 ip 对应的 goroutine 关闭。

  • 防止子节点多次连接。

实现方案:

  1. 改方案实现依赖,上个功能实现。
  2. master 对于ip_list 内的节点不再将该信息下发到调度器。

  • 主节点挂掉,子节点动态升级

实现法案:

  • 策略: 正常环境下,主从节点心跳通信时,主节点将每个调度器内的状态同步到各个子节点。
  1. 某个从节点与父节点心跳通信失败,触发与周围从节点通信事件。
  2. 与周围多个从节点通信,认证到多个从节点发现主节点挂了。
  3. 此时该节点向多个从节点发送竞选信息,直接向所有iplist内的从点发 新 master ip地址,带上最后一次通信事件戳。
  4. 新master ip 收到信息后,开始衍生一个主节点(注意此时的子节点并没有被销毁),初始化成功后,会讲从节点将调度器信息同步到主节点。
  5. 新主节点准备成功后,依旧根据ip_list 内的ip信息向其他从节点发送任务及心跳。
  6. 所有的从节点无需改变。

  • 优化爬虫调度器,在爬虫调度器中新增pdf 解析功能

实现法案:

  1. 针对以 .pdf 结尾的 url,下载下来后进行 解析,提取邮箱信息。

About


Languages

Language:Go 99.7%Language:Shell 0.3%