返回
RSS AWS Big Data Blog 精选 发布 2026-08-13 23:50 收录于 08-14 59

AppFolio借Amazon MSK Express重构实时数据流架构

AppFolio采用Amazon MSK Express brokers改造其流式数据平台,以替代耗时数小时的再平衡和手动存储规划。该平台每日处理数百万笔交易,通过CDC和服务器端事件实时接入数据,并支撑实时欺诈检测、财务报告和自动化物业管理等下游场景。文章详细介绍了其旧架构的局限与新架构的自动扩展能力。
推荐理由:真实企业级实时数据流架构升级实践,涉及Kafka托管服务、CDC接入与自动扩展,对数据平台工程师有直接参考价值。
实时分析AWSAmazon Web Services

译文 AI 逐段翻译

实时数据流和事件处理是现代分布式系统架构的关键组成部分。Apache Kafka 已成为构建实时数据管道和支持微服务与应用之间异步通信的领先平台。然而,大规模运行和管理 Kafka 集群可能具有挑战性,需要专业知识和显著的操作开销。

Amazon Managed Streaming for Apache Kafka(Amazon MSK)是一项完全托管的服务,您可以使用它来构建和运行生产级 Kafka 应用程序。借助 Amazon MSK,您可以依靠 AWS 来处理配置和管理 Kafka 集群的重任,同时专注于构建创新应用程序和实时数据处理管道。

在本文中,您将了解 AppFolio 如何采用 Amazon MSK Express 代理,将耗时数小时的重新平衡和手动存储规划替换为自动扩展的流式处理平台。

关于 AppFolio 及其数据流平台

AppFolio 是一家领先的房地产绩效管理平台,为美国数千家物业管理公司提供服务。AppFolio 的平台每天处理数百万笔交易,从收租和维护请求到租赁管理和财务报告。在这个数据密集型环境中,可靠的流式基础设施不仅重要,而且至关重要。

在 AppFolio,实时数据是公司提供强大智能解决方案的基础,这些方案为房地产行业赋能。为了实现这种性能水平,AppFolio 基于 Amazon MSK 和 Express 代理设计了一个现代流式数据架构。该基础设施支持大规模的高吞吐量实时应用程序。通过 Amazon MSK Express 代理,AppFolio 可以可靠地摄取大量多样化的数据,包括变更数据捕获(CDC)和服务器端事件,并在几秒钟内将其提供给下游消费者,如实时欺诈检测、财务报告和自动化物业管理流程。

以前的架构和 AppFolio 不断发展的需求

直到 2025 年初,AppFolio 在单个 Amazon MSK 集群上使用 Standard 代理运行其流式平台,同时支持面向客户和内部工作负载。该架构在早期增长阶段表现良好。随着 AppFolio 的数据平台不断发展,以支持日益复杂的用例和更高的吞吐量,其工作负载的两个特点促使他们寻求更具弹性的流式基础。

AppFolio 以前的架构:一个使用 Standard 代理的 Amazon MSK 集群,同时服务于面向客户和内部工作负载

图 1:AppFolio 使用 Amazon MSK Standard 代理的以前的架构

首先,AppFolio 广泛使用日志压缩主题用于其 CDC 流。压缩主题为每个键无限期保留最新值,这正是他们想要的用于镜像操作表状态的流。随着其足迹的增长,AppFolio 希望一种基础设施模型,能够随着数据增长自动扩展存储,而无需每月花费数小时进行持续的容量规划。

其次,随着 AppFolio 接入新用例和添加更多事件源,其吞吐量持续增长。他们希望能够快速扩展集群以应对流量变化,并尽量减少分区重新分配的准备时间。

第三,随着 AppFolio 平台的成熟,他们需要面向客户和内部数据流之间的工作负载隔离。在单个集群上运行面向客户和内部工作负载使得独立调整和调优变得更加困难。随着两者不断增长,AppFolio 希望拥有专用资源,以便独立调整和调优。

基于这些需求,AppFolio 确定了其下一代流式平台的以下关键要求:

  1. 弹性、自动管理的存储 可随 AppFolio 压缩密集型 CDC 工作负载进行扩展,无需提前进行代理容量规划。
  2. 更快的水平扩展和分区重新分配 以便 AppFolio 能够在几分钟内而不是几小时内根据实际流量调整集群形状。
  3. 工作负载隔离 在面向客户和内部数据流之间,以便每个工作负载可以根据其流量模式进行独立调整和调优。

为什么 AppFolio 选择 Amazon MSK Express 代理

在评估了各种选项后,AppFolio 选择 Amazon MSK Express 代理作为其下一代流式平台的基础。Express 代理是 MSK Provisioned 下提供的一种代理类型。它们包括按需付费的弹性存储,可自动扩展,智能分区重新平衡,以及为生产工作负载调优的 Kafka 配置默认值。Express 代理直接满足了 AppFolio 确定的要求:

  1. 弹性存储,随数据扩展。 Express 代理消除了代理磁盘大小调整和配置,存储随数据增长自动扩展。AppFolio 仅需为实际使用的存储付费。
  2. AWS 基准测试显示,扩展速度最高提升 20 倍。 以前需要数小时的水平扩展和分区重新分配现在在几分钟内完成,使 AppFolio 能够在更短的周期内应对流量变化。
  3. 生产调优的默认设置。 Express 代理预配置了 Kafka 最佳实践默认设置和内置的客户端吞吐量配额,简化了 AppFolio 的操作模型。
  4. 完全兼容 Kafka API。 AppFolio 无需更改生产者和消费者应用程序即可完成迁移。

作为迁移的一部分,AppFolio 还借此机会重新思考了集群的使用方式。他们没有在 Express 代理上复制一个共享集群,而是按工作负载类型对 MSK 集群进行了分段。这为面向客户和内部工作负载提供了专用资源,为每种工作负载类型提供了更好的隔离和更可预测的性能。

当前架构

AppFolio 当前的架构由多个带有 Express 代理的 Amazon MSK 集群组成,按工作负载类型进行细分。每个集群都针对其特定的流量模式进行大小调整和优化,从而提供更好的隔离性和更可预测的性能。下图展示了该部署。

当前架构:多个带有 Express 代理的 Amazon MSK 集群,按工作负载类型分为面向客户的集群和内部集群

图2:使用 Express 代理的按工作负载细分的 Amazon MSK 集群的当前架构

取得的收益

通过迁移到 Amazon MSK Express 代理并采用按工作负载细分的集群设计,AppFolio 实现了多项关键收益:

弹性、无需管理的存储

Express 代理的按使用量付费存储随 AppFolio 数据增长自动扩展。存储容量不再需要平台团队进行规划、预置或监控,AppFolio 只需为实际使用付费。对于大量运行压缩主题的工作负载,这是他们看到的最大的运营改进。

更快的扩展

以前需要数小时的分区重新分配和代理扩展现在只需几分钟即可完成,使 AppFolio 能够根据实际流量调整集群规模,而不是提前于预测运行。

改进的工作负载隔离

将流式流量拆分为按工作负载细分的集群,为 AppFolio 带来了更可预测的性能。面向客户和内部工作负载现在运行在专用基础设施上,每个集群都可以根据自身的流量模式进行大小调整和优化。

随着数据量增长保持稳定的环境

自迁移以来,AppFolio 一直保持稳定的环境,没有重大停机,即使数据量持续增长。

减少运营开销

无需管理的存储管理和智能再平衡消除了 AppFolio 平台团队队列中的几项重复任务,包括以前架构下存储规划所需的持续监控和人工干预。

结论

通过使用 Amazon MSK Express 代理并采用按工作负载细分的集群设计,AppFolio 构建了一个流式处理基础,能够随数据增长弹性扩展,并快速适应流量变化。Express 代理的按使用量付费存储和更快的扩展让 AppFolio 平台团队能够将工程精力集中在为客户构建新功能上,而不是用于 Kafka 容量规划。随着 AppFolio 继续扩展其面向房地产行业的平台,Amazon MSK Express 代理基础设施为未来增长提供了可扩展的基础。

要了解更多关于 Amazon MSK Express 代理的信息,请参阅Amazon MSK Express 代理文档和AWS 公告文章《Introducing Express brokers for Amazon MSK》

关于作者

分享这条资讯
分享海报
保存图片
iOS 也可以长按图片保存