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

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

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

阅读 6.6k
3 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题