jiascheduler 有三个执行文件,分别是 jiascheduler-console ,jiascheduler-comet ,jiascheduler-agent
-
jiascheduler-console 提供了 web 管理能力,前端页面被直接打包到了二进制文件中,方便用户直接部署控制台
-
jiascheduler-comet 用于连接分布在不同子网的 Agent 程序
-
jiascheduler-agent 部署在目标机器上用于执行用户脚本,agent 和 comet 保持长连接,用户下发的指令会通过控制台传递至 comet ,然后由 comet 将指令下发至 agent 执行
Agent 和 Comet 采用 websocket 通信,周期发送心跳保活,jiascheduler 采用 redis 提供服务发现能力,Comet 上报自身 Agent ip 和 Comet 关联关系至 redis 。推送脚本时,先找到 Agent 连接的 Comet ,然后由 Comet 将指令通过 websocket 下发至 Agent 执行。
用户脚本的执行状态及其日志先有 Agent 上报至 Comet ,然后有 Comet 上报消息队列( redis stream ),最后由 console 消费消息队列,实时更新脚本执行动态
github: https://github.com/jiawesoft/jiascheduler
|