golang 实现任务的下发与上报?

发布于 2022-09-04 13:07:51 字数 266 浏览 15 评论 0

最近在用 Golang 做一个监控任务,比如监控一个 url 的访问情况,思路是在服务器上模拟发送 Http 然后看返回的响应的状态码响应体等情况,这部分代码已经实现,现在需要做的是将监控任务部署在多台服务器上实现分布式监控,想到的应该是要有一个中央控制器 server,负责来创建调度下发任务,然后有很多 agent(服务器) 来负责跑这个任务,并上传各自的任务情况到 server。

想请教下大牛们有没有相关的分布式任务下发上传的检验,或者有没有一些比较好的开源的库可以来实现这个功能,不胜感谢。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

优雅的叶子 2022-09-11 13:07:51

不想额外装第三方服务,直接利用channel和socket来实现。
agent 发起socket长链挂到server上
每个agent对应的socket绑定到固定channel
当server接收到任务的时候,根据规则分发到各个channel
channel接收到数据写入到对应socket中,这样子agent就能接收到任务请求,处理完后在利用socket返回结果
一个channel可以绑定多个socket,一个socket也可以监听多个channel、。
主要利用的就是channel,socket长链,然后多开几个goroutine做好socket的监听处理

街角迷惘 2022-09-11 13:07:51

这个用队列自己写也不麻烦吧
golang世界里最流行的队列是nsq
https://github.com/nsqio/nsq

彩虹直至黑白 2022-09-11 13:07:51

这个是典型的C/S 结构的系统。
请参考
https://github.com/firstrow/t...

https://github.com/graarh/gol...

加上你的业务逻辑。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文