写点什么

HubSpot 使用 Apache Kafka 泳道实现工作流操作的实时处理

作者:Rafal Gancarz

  • 2023-12-11
    北京
  • 本文字数:1194 字

    阅读完需:约 4 分钟

HubSpot 使用 Apache Kafka 泳道实现工作流操作的实时处理

HubSpot 采用在多个 Kafka 主题(称为泳道,swimlanes)上为同一生产者路由消息的方式,避免了消费者群组滞后的积压,并且能够优先处理实时流量。通过自动和手动相结合的方式探测流量峰值,该公司能够确保大多数消费者的工作流能够在无延迟的情况下执行。


HubSpot 提供了一个业务流程的自动化平台,其核心采用工作流引擎来推动操作(action)的执行。该平台可以处理数百万个活动的工作流,每天执行数亿个操作,每秒执行数万个操作。



工作流引擎概览(来源:HubSpot 工程博客)


大部分处理都是异步触发的,使用 Apache Kafka 进行传递,从而实现了操作的源 / 触发器与执行组件之间的解耦。该平台使用了许多 Kafka 主题,负责传递来自各种源的操作数据。使用消息代理的潜在问题在于,如果消息发布得太快,而消费者无法及时处理,等待处理的消息就会积压,这就是所谓的消费者滞后(consumer lag)。


HubSpot 的工程主管 Angus Gibbs 描述了确保近实时处理消息所面临的挑战:


如果在主题上突然出现大量消息,我们就必须处理积压的消息。我们可以扩展消费者实例的数量,但这会增加基础设施成本;我们可以添加自动扩展,但增加新的实例需要时间,而客户通常希望工作流能够以接近实时的方式进行处理。团队认识到,他们需要解决的问题是对所有相同类型或相同来源的消息使用了相同的主题。考虑到该平台被许多客户使用,如果某一个或一小部分客户开始产生大量消息,那么所有的流量均会延迟,所有客户的用户体验都会受到影响。


为了解决这个问题,开发人员选择使用多个主题,他们将其称为泳道(swimlanes),并为每个泳道配置专用的消费者池。应用这种模式的最简单方式是使用两个主题:一个负责实时的流量,一个负责溢出的(overflow)流量。这两个泳道以完全相同的方式处理流量,但是每个主题都有独立的消费者滞后,通过在两者之间适当地路由消息,可以确保实时泳道避免出现任何的(或明显的)延迟。



Kafka 泳道(来源:HubSpot 工程博客)


如果可能的话,系统会从发布的消息中提取元数据,基于此在泳道之间实现消息的自动路由。例如,批量导入所产生的消息可以在消息模式中明确标记出这种操作类型,这样路由逻辑就可以轻松地将这些操作发布到溢出泳道。此外,开发人员还引入了按客户配置来限制流量的功能,并且能够根据报文消费者的最大吞吐量指标设置适当的阈值。


决定如何在泳道之间路由消息的另一个角度是查看操作的执行时间。实际操作将被路由到一个泳道,而慢速操作将被路由到另一个泳道。这一点对 HubSpot 平台尤为重要,因为客户可以创建执行任意 Node 或 Python 代码的自定义操作。


最后,该团队还开发了将特定客户的所有流量手动路由到专用泳道的方法,以防来自客户的流量意外地在主(实时或快速)泳道上造成滞后,而此时自动路由机制均未启动。这样,在团队排查延迟原因时,就对流量进行隔离了。


原文链接

https://www.infoq.com/news/2023/11/hubspot-apache-kafka-swimlanes/


2023-12-11 14:334721

评论

发布
暂无评论
发现更多内容

字节跳动冯佳时:大语言模型在计算机视觉领域的应用、问题和我们的解法

极客天地

广大中小企业的共同选择!华为云Flexus云会议引领云上协作新潮流

轶天下事

如何组织一场成功的云会议?华为云Flexus云会议让会议更加轻松高效

轶天下事

DistilQwen2.5蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践

阿里云大数据AI技术

人工智能 阿里云 LLM Qwen DistilQwen2.5

OCAI + DeepSeek满血版双buff加成,OS运维从此告别焦虑

OpenCloudOS

AI OpenCloudOS 社区 DeepSeek

鸿蒙APP性能优化

北京木奇移动技术有限公司

APP开发 软件外包公司 APP外包公司

从古籍到算法,数智本草大模型背后的研发之路

华为云开发者联盟

人工智能 盘古大模型 大模型

多种设备皆可联接!华为云Flexus云会议开箱即用、轻松上手

轶天下事

从曼哈顿到龙隐洞天,XeSS 助你决胜游戏战场

E科讯

DeepSeek大模型6大部署模式解析与探索测试开发技术赋能点

测试人

人工智能 软件测试

智能制造架构设计方案

金陵老街

智慧工厂 智能制造

打破云会议技术壁垒!华为云Flexus云会议轻松解决中小企业协作难题

轶天下事

【GreatSQL优化器-16】INDEX_SKIP_SCAN

GreatSQL

零代码!快速搭建你的专属论文阅读助手|火山方舟零代码智能体教程

火山引擎开发者社区

推理大模型时代,TextIn ParseX助力出版业知识资产重构

合合技术团队

人工智能 算法 图表 图像处理 大模型

RocketMQ:消息发送机制

葛飞

邀请函|相约新乡——“AI 赋能,智造跃迁” AI 驱动数字化创新设计促进新质生产力发展交流会

Altair RapidMiner

AI 数字化转型 仿真 智能制造 CAE

19.5stars!未来十年一定要学的免费、开源的OLAP数据库——DuckDB

遇码

大数据 开源 数据分析 OLAP duckdb

字节跳动 EB 级日志系统设计与优化实践

火山引擎开发者社区

从人工到智能:DeepSeek重新定义告警管理效能标准

嘉为蓝鲸

运维 AIOPS 告警管理 DeepSeek

MAC与HMAC技术辨析

石君

hash HMAC-SHA

首次覆盖超 11 类真实编程场景!豆包大模型团队开源代码大模型全新基准

科技热闻

高清、高效、高性价比,华为云Flexus云会议专为中小企业而生!

轶天下事

黑龙江等级保护测评到底该不该每年都做?

黑龙江陆陆信息测评部

官网购买、注册即用!华为云Flexus云会议让云上沟通更高效

轶天下事

《Operating System Concepts》阅读笔记:p258-p271

codists

操作系统

当达索仿真遇上DeepSeek:AI给工程研发装上了"智慧大脑"

思茂信息

abaqus DeepSeek SIMULIA CST Studio Suite 达索

认知、实践、驾驭:AI 时代普通人的务实生存法则

小鲸数据

Sandisk闪迪携UFS 4.1存储解决方案亮相CFMS | MemoryS 2025

极客天地

HubSpot 使用 Apache Kafka 泳道实现工作流操作的实时处理_实时计算_InfoQ精选文章