- v 1.0.1 版本更新
- 子节点(主动或意外)断开后,父节点检查到该子节点状态并断开。
实现方案:
- 主从节点心跳通信失败,任务子节点断开。(不采用多次grpc失败作为判定,有利于框架逻辑和调度器逻辑分开)
- 主节点将改ip,从 ip_list 移除,并将该信息下发到各个调度器
- 调度器收到该 ip 移除,将该 ip 对应的 goroutine 关闭。
- 防止子节点多次连接。
实现方案:
- 改方案实现依赖,上个功能实现。
- master 对于ip_list 内的节点不再将该信息下发到调度器。
- 主节点挂掉,子节点动态升级
实现法案:
- 策略: 正常环境下,主从节点心跳通信时,主节点将每个调度器内的状态同步到各个子节点。
- 某个从节点与父节点心跳通信失败,触发与周围从节点通信事件。
- 与周围多个从节点通信,认证到多个从节点发现主节点挂了。
- 此时该节点向多个从节点发送竞选信息,直接向所有iplist内的从点发 新 master ip地址,带上最后一次通信事件戳。
- 新master ip 收到信息后,开始衍生一个主节点(注意此时的子节点并没有被销毁),初始化成功后,会讲从节点将调度器信息同步到主节点。
- 新主节点准备成功后,依旧根据ip_list 内的ip信息向其他从节点发送任务及心跳。
- 所有的从节点无需改变。
- 优化爬虫调度器,在爬虫调度器中新增pdf 解析功能
实现法案:
- 针对以 .pdf 结尾的 url,下载下来后进行 解析,提取邮箱信息。