arroyo 组件简单说明

arroyo 架构上与k8s 的架构特别类似,包含了控制面板:api server 、controler、存储(k8s 是etcd,arroyo 是pg)、web ui (类似dashboard)数据面板: scheduler 以及worker(serverless 具体执行的地方),对于状态存储基于了s3

组件介绍

  • web ui 
    单页面应用,通过grpc api 交互,支持管理以及创建pipeline
  • arroyo-api 
    提供grpc 服务,同时会进行配置的pg 存储,api 是武无状态的,其他通信只会使用db
  • arroyo-controller 
    持续循环处理系统状态(基于db),比较类似k8s,当前开源版本只支持一个controller,不支持ha,controller 管理job 的状态 
    同时也包含了checkpoint 的初始化,与worker 通信通过grpc
  • scheduler 
    arroyo 支持多种调度处理,可以通过环境变量处理(SCHEDULER)当前支持进程,node,nomad(比较推荐)以及k8s (暂时还没开放)
  • arroyo-worker 
    运行业务实际逻辑的地方,会将rust code 生成为sql 查询,同一个piepeline 通过tcp 连接,每个worker 配置了一些slots,可以控制多少子任务执行,每个slot 并行的运行dag
  • postgres 
    基于pg 的配置存储,以及系统的状态维护,同时controller 也会通过协调循环处理
  • prometheus 
    主要是进行监控的
  • s3 
    checkpoints 的存储方便恢复

arroyo 状态处理

了解arroyo的状态图比较有意义,可以方便学习内部处理机制

 

 

说明

arroyo 的架构,从功能上比较类似k8s,毕竟k8s的架构比较稳定,很值得借鉴参考

参考资料

https://doc.arroyo.dev/architecture
https://doc.arroyo.dev/architecture#state-machine

posted on 2023-04-11 08:03  荣锋亮  阅读(71)  评论(0编辑  收藏  举报

导航