golang 实现任务的下发与上报?
最近在用 Golang 做一个监控任务,比如监控一个 url 的访问情况,思路是在服务器上模拟发送 Http 然后看返回的响应的状态码响应体等情况,这部分代码已经实现,现在需要做的是将监控任务部署在多台服务器上实现分布式监控,想到的应该是要有一个中央控制器 server,负责来创建调度下发任务,然后有很多 agent(服务器) 来负责跑这个任务,并上传各自的任务情况到 server。
想请教下大牛们有没有相关的分布式任务下发上传的检验,或者有没有一些比较好的开源的库可以来实现这个功能,不胜感谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不想额外装第三方服务,直接利用channel和socket来实现。
agent 发起socket长链挂到server上
每个agent对应的socket绑定到固定channel
当server接收到任务的时候,根据规则分发到各个channel
channel接收到数据写入到对应socket中,这样子agent就能接收到任务请求,处理完后在利用socket返回结果
一个channel可以绑定多个socket,一个socket也可以监听多个channel、。
主要利用的就是channel,socket长链,然后多开几个goroutine做好socket的监听处理
这个用队列自己写也不麻烦吧
golang世界里最流行的队列是nsq
https://github.com/nsqio/nsq
这个是典型的C/S 结构的系统。
请参考
https://github.com/firstrow/t...
https://github.com/graarh/gol...
加上你的业务逻辑。