48 | 完善核心能力:Master请求转发与Worker资源管理
郑建勋
你好,我是郑建勋。
这节课,让我们继续优化 Master 服务,实现 Master 请求转发和并发情况下的资源保护,同时实现 Worker 对分配资源的监听。
将 Master 请求转发到 Leader
首先我们需要考虑一下,当 Master 是 Follower 状态,同时还接收到了请求的情形。在之前的设计中,为了避免并发处理时可能出现的异常情况,我们只打算让 Leader 来处理请求。所以,当 Master 节点接收到请求时,如果当前节点不是 Leader,我们可以直接报错,由客户端选择正确的 Leader 节点。如下所示。
我们还可以采用另外一种更常见的方式:将接收到的请求转发给 Leader。要实现这一点,首先所有 Master 节点要在 Leader 发生变更时,将当前最新的 Leader 地址保存到 leaderID 中。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何通过实现Master请求转发和Worker资源管理来优化系统。首先,文章介绍了将Master请求转发到Leader的实现方式,包括在Master节点接收请求时判断是否为Leader,并将请求转发给Leader。接着,文章讨论了资源保护的重要性,提出了使用原生互斥锁来保护Worker节点与Resource资源的并发安全。此外,还介绍了Worker单机模式和集群模式的切换方式,以及在集群模式下如何加载和监听etcd资源。文章还详细介绍了监听新增资源和删除资源的功能,并通过代码示例验证了功能的正常运行。总的来说,本文涵盖了系统优化的多个方面,包括请求转发、资源保护和Worker模式切换,为读者提供了全面的技术指导。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 进阶 · 分布式爬虫实战》,新⼈⾸单¥68
《Go 进阶 · 分布式爬虫实战》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- Geek_crazydaddywatchResource里获取和删除任务时为啥都不判断任务是不是分配给当前worker了?2023-02-20归属地:江苏1
- Realmfollow节点在收到资源变更请求,当请求到达grpc服务层时,通过注入进来的master grpc client,向master发起请求,参数不变,实现了转发功能,这个设计很赞!👍2023-02-07归属地:浙江
收起评论