背景介绍
工作流是指完成业务目标所需的一系列步骤,通常用BPMN流程图表示。非工作流模式下,系统实现直接将步骤串联,而工作流模式通过工作流引擎分离任务实现与协作关系,实现任务复用和流程灵活调整。工作流引擎是维护任务协作关系的程序,适用于业务流转场景,并可作为微服务编排的中控引擎。
腾讯服务器运营历程
腾讯服务器运营领域场景需求为高吞吐、低延时的程序化自动任务,传统流程引擎无法适应。调研发现,zeebe支持高吞吐、低延时和横向扩容,适合微服务架构场景,其架构包含client、gateway、brokers以及exporters四大组件,核心特性包括事件模型、分布式事务等。
高可用架构落地实践
基于单集群的工作流服务体系建设
- 组建高性能流程引擎集群,量化理解组件能力,扩展新特性,建设工作流服务体系。
- 高可用设计:对等网络集群,数据副本机制,实现分区失败自主选主恢复。
- 易用性设计:pub-sub模型,流量控制台可视化跟踪流程。
- 快速接入业务。
从单集群演进到多集群,架构弹性可伸缩
- 多集群架构演进背景:版本升级面临数据格式变化和交互协议兼容问题,原生zeebeclient限制。
- 解决思路:保证升级过程中老集群存量实例正常走完流程,同时不影响新创建实例。
- 多集群实现难点:业务解耦zeebe集群,流量精准路由。
- 重点问题攻克:
- 业务解耦:引入proxy代理client与zeebe的job交互行为,保持grpc不变,改用http。
- 流量精准路由:建设poll service遍历后端集群,解决ID冲突问题通过修改zeebe原生ID编码规则,新增clusterID解析逻辑。
- 多集群弹性可伸缩架构落地。
秒级自动容灾,提升整体高可用
- 全链路异地容灾:双热集群秒级自愈,实现业务零感知高可用。
落地场景与取得效果
- 峰值10W+QPS,支撑服务器数亿级自动化作业。
- 毫秒级任务调度,满足业务SLA。
- 多层级流程实例嵌套,流程灵活可复用。
- 全链路可视化控制台,提升开发运维效率。
- 首创多集群架构,弹性可伸缩。
下一步计划与思考
- 多集群管理,提升集群利用率。
- 运行中实例跨子集群断点续跑能力建设,支持长尾流程集群迁移。
- 工作流与LLM。