Cloudflare上的Kafka故事:Andrea Medda和Matt Boyle在QCon伦敦的演讲

Cloudflare在QCon London分享Apache Kafka规模化应用的经验

在QCon London大会上,Cloudflare的高级系统工程师Andrea Medda和工程经理Matt Boyle分享了他们的平台服务团队在处理1万亿条消息规模时使用Apache Kafka的经验教训。

背景与挑战

Boyle首先概述了Cloudflare需要解决的技术问题,包括提供私有和公共云服务,以及随着业务需求增长和演变,团队之间的耦合问题。他们选择了Apache Kafka作为消息总线模式的实现方案,以实现微服务之间的负载解耦。

模式管理与技术迁移

尽管消息总线模式实现了微服务之间的解耦,但由于模式管理的非结构化方法,服务仍然紧密耦合。为了解决这个问题,团队决定从JSON消息迁移到Protobuf,并构建一个客户端库,在发布消息之前进行验证。

Connector框架的开发

随着Apache Kafka在团队中的广泛应用,他们开发了Connector框架,以便团队在Apache Kafka和其他系统之间流式传输数据时,能够更轻松地转换消息。

疫情期间的挑战与解决方案

在疫情期间,随着Cloudflare系统负载的增加,团队发现关键消费者出现了瓶颈,导致服务级别协议(SLA)被突破。Medda解释了团队最初在识别问题根本原因时的困难,促使他们在软件开发工具包(SDKs)中集成Open Telemetry生态系统的工具,以更好地观察堆栈中的交互。

SDK的成功与支持需求

SDK的成功带来了更多内部用户,这促使团队需要提供更好的支持,包括文档和ChatOps。

关键经验总结

Medda总结了以下关键经验:

  • 在提供Apache Kafka开发工具时,平衡高度可配置和简单标准化方法。
  • 选择简单且严格的1:1合同接口,以确保对主题及其使用的最大可见性。
  • 投资于开发工具的指标,以便问题能够轻松暴露。
  • 优先为应用开发者提供清晰的模式文档,以确保Apache Kafka的一致采用和使用。

新产品Gaia

最后,Boyle分享了团队正在构建的新内部产品Gaia,该产品旨在根据Cloudflare的最佳实践,实现一键式服务创建。

通过这些经验,Cloudflare团队在Apache Kafka的规模化应用中取得了显著进展,并为未来的开发提供了坚实的基础。

阅读 27
0 条评论