V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iwannay
V2EX  ›  程序员

简单说一下 jiascheduler 推送脚本到海量节点的架构设计

  •  
  •   iwannay · 5 小时 29 分钟前 · 201 次点击

    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

    2 条回复    2024-11-21 14:41:25 +08:00
    pota
        1
    pota  
       4 小时 8 分钟前
    好意提醒,别把号搞没了
    iwannay
        2
    iwannay  
    OP
       1 小时 8 分钟前
    @pota 一个纯粹开源的软件,又不用来盈利,又不刷屏,单纯就是希望有需要的人看到,介绍一下原理,完全分享,如果这样都能把号搞没,唉,那没就没吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5231 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 07:50 · PVG 15:50 · LAX 23:50 · JFK 02:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.