gitwork_7177367626
golang 高级开发
分布式爬虫项目
项目描述: 该项目是一个分布式爬虫项目 ,能够支撑海量爬虫任务的高并发系统 ,具有故障容错能力的分布式系统 、可 扩展性的微服务系统等功能 ,项目主要分三个角色-Master 、Worker 和 Etcd 集群 。
Master 总览全局 ,为用户操作提供接口 ,并作为任务的调度器完成如下工作:
提供任务增删查改的 API 。
实现任务的调度 。
动态获取和监听 Worker 节点的变化 ,实现任务动态的负载均衡 。
借助 etcd 实现选主, 完成可用性的保证 。
Master 集群中只会有一个 Leader ,其他 Master 接收到的请求会转发到 Leader 中处理 。
Worker 负责监听任务的变化 ,完成具体任务的采集工作:
动态监听 Master 为其分配的任务 。
注册服务到 etcd 中 。
完成海量并发任务的爬取 、解析 、清洗 、存储工作 。
Etcd 集群负责实现 Master 与 Worker 的分布式协调工作:
为 Worker 与 Master 实现注册中心的功能 。
实现事件的监听和通知机制 。
存储每个 Worker 需要执行的任务 ,这些任务由 Master 完成分配 。
提供 Master 选主能力 。
项目职责:
技术栈 : go-micro ,mysql ,etcd ,docker ,ku bernetes ,gitOps 。
开发框架 :技术路线选型 ,技术架构的选型 ,开发框架的搭建 。
go-micro: 借助 go-micro 和 grpc-gateway 实现 grpc 和 http 的请求转发 ,使用 http-proxy 实现反向代 理转发 ,实现微服务治理(hystrix 熔断器 、令牌桶算法限流 、授权)。
业务调度: 使用 fan-in 、fan-out 、orDone 高并发模式进行业务的分发 ,优化业务调度 ,深度使用 channel 和 select 机制, 自定义规则引擎和存储引擎 。
搜索算法: 深度与广度优先算法 ,本项目使用广度优先算法, 自定义深度优先 。
测试与调试: delvet 高级调试 、使用 pprof 和 trace 工具辅助调试 ,性能分析与调优 。
gitOps: 负责为应用程序部署 、管理和监控提供统一技术标准 ,实现开发者自助发布的路径 ,提升发布效率 ,更强 的安全性以及更高的可靠性 。
项目业绩 :项目链接: https://g it hub.com/bob2325168/spider 。
logo
浙公网安备33011802001633号
浙ICP备1805484号-2