leehom commented on issue #134: URL: https://github.com/apache/rocketmq-eventbridge/issues/134#issuecomment-1763384003
**问题背景** 当订阅规则增加时,单个运行时worker无法支持,需要添加更多worker同时提供服务。 下面重点回答弹性资源问题: - 现有系统需要多少Worker? - 如何实现弹性伸缩? - 如何实现不同任务之间的隔离? - 如何新增加Worker - 如何实现高可用 ### 技术架构  总体架构是master-worker,master包括资源消费者(包括调度器),资源管理器;worker是任务管理器,管有资源,上报资源。 **数据架构**,资源是组件的核心数据,分两条线a线 现有资源,b线 待定资源 a) 4资源请求->5a 分配可用资源-> 6a 请求使用资源-> 7a 提供资源->8a 提交任务 b) 4资源请求->5b 分配待定资源-> 6b 请求新worker-> 7b 启动任务管理器->8b 注册/报告资源 a线是分配现有资源;b线请求新资源,新资源注册后成为现有资源,在a线分配 ### ### 现有系统需要多少Worker? 作业管理器询问所有connector task数量,总和就是资源槽数据量,Worker数量=资源槽数据量/每个Worker资源槽数 ### ### 如何实现弹性伸缩/如何新增加Worker 两个问题其实是一个问题,弹性资源通过增减Worker实现;参考flink的声明式资源管理,资源使用分为,资源申请,检查资源请求/检查资源声明,资源提供  - 资源申请 资源消费者负责,向资源管理器提出申请; - 检查资源请求/检查资源声明 检查资源请求/检查资源声明是交汇点,检查资源请求,该分配的分配,该请求新的请求新的资源;检查资源声明 哪些资源可以释放,需要新资源请求新worker。 - 资源提供 资源管理器向k8s集群管理器申请新建Worker,Worker启动后,注册/报告自身的资源槽; ### 如何实现不同任务之间的隔离? 使用docker的容器 ### 高可用&健壮性设计  1. master的高可用是k8s的复制机制提供,选主机制k8s提供,资源消费者和资源管理器参与选主,资源消费者/任务管理器接入资源管理器主节点监听,获取最新资源管理器地址;任务管理器接入资源消费者主节点监听,获取最新的资源消费者主节点 2 资源消费者/资源管理器/任务管理器直接都有心跳检测,超时重连,保证连接有效性 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@rocketmq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org