点击空白处退出提示
作品详情
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
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论