分布式爬虫spider

我要开发同款
proginn04332421512023年04月10日
81阅读
所属分类mysql、Master选主、爬虫、分布式事务、etcd

作品详情

项目描述:该项目是一个分布式爬虫项目,能够支撑海量爬虫任务的高并发系统,具有故障容错能力的分布式系统、可扩展性的微服务系统等功能,项目主要分三个角色-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,kubernetes,gitOps。开发框架:技术路线选型,技术架构的选型,开发框架的搭建。go-micro:借助go-micro和grpc-gateway实现grpc和http的请求转发,使用http-proxy实现反向代理转发,实现微服务治理(hystrix熔断器、令牌桶算法限流、授权)。业务调度:使用fan-in、fan-out、orDone高并发模式进行业务的分发,优化业务调度,深度使用channel和select机制,自定义规则引擎和存储引擎。搜索算法:深度与广度优先算法,本项目使用广度优先算法,自定义深度优先。测试与调试:delvet高级调试、使用pprof和trace工具辅助调试,性能分析与调优。gitOps:负责为应用程序部署、管理和监控提供统一技术标准,实现开发者自助发布的路径,提升发布效率,更强的安全性以及更高的可靠性。项目业绩:项目链接:https://github.com/bob2325168/spider。
查看全文
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论