写点什么

Cloudflare 的 Kafka 之旅:万亿规模消息处理经验分享

作者:Nsikan Essien

  • 2023-04-30
    北京
  • 本文字数:818 字

    阅读完需:约 3 分钟

Cloudflare的Kafka之旅:万亿规模消息处理经验分享

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


Boyle 首先概述了 Cloudflare 需要解决的问题——提供自己的私有云和公共云服务,以及随着业务需求的增长而出现的团队耦合所带来的运营挑战。接着,他介绍了他们是如何将 Apache Kafka 作为他们的消息总线的。



Boyle 说,虽然消息总线模式解耦了微服务之间的负载,但由于 schema 是非结构化的,所以服务仍然是紧密耦合的。为了解决这个问题,他们将消息格式从JSON转成了Protobuf,并构建了一个客户端库,在发布消息之前对消息进行验证。



随着越来越多的团队开始采用 Apache Kafka,他们开发了一个连接器框架,让团队可以更容易在 Apache Kafka 和其他系统之间传输数据,并在传输过程中转换消息。



在疫情期间,随着 Cloudflare 系统负载的增加,他们发现他们的一个关键用户出现了瓶颈,已触及其服务水平协议(SLA)。Medda 分享了他们为了找到问题的根源,不得不使用来自Open Telemetry生态系统的工具来丰富他们的 SDK,以获得更好的跨堆栈交互可见性。



Medda 继续强调,他们 SDK 的成功带来了更多的内部用户,这催生了对更好的文档和ChatOps支持形式的需求。


Medda 总结了他们获得的主要的经验教训:


  • 在为 Apache Kafka 提供开发人员工具时,在高度可配置和简单标准化方法之间取得平衡;

  • 选择简单而严格的 1 对 1 契约接口,确保最大限度地了解主题及其使用情况;

  • 在开发工具指标上投入,让问题可以更容易地被发现;

  • 为应用程序开发人员提供清晰的模式文档,确保他们在采用和使用 Apache Kafka 方面保持一致性。


最后,Boyle 分享了一款叫作 Gaia 的内部产品,可以根据 Cloudflare 的最佳实践一键创建服务。



原文链接

https://www.infoq.com/news/2023/04/cloudflare-kafka-lessons-learned/


相关阅读:

使用 Strimzi 将 Kafka 和 Debezium 迁移到 Kubernetes

使用 Strimzi 提高 Kafka 集群的安全性

Kafka Streams 与 Quarkus:实时处理事件

2023-04-30 08:007850

评论

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

兆骑科创高层次人才创新创业大赛,项目落地,云路演

兆骑科创凤阁

Spring Security系列教程05--实现HTTP摘要认证

一一哥

HTTP 认证 Spring Security OAuth

技术分享 | 软件项目管理与跨部门沟通协作

霍格沃兹测试开发学社

软件测试 | 测试开发 | 使用 cURL 发送请求

测吧(北京)科技有限公司

curl

Spring Security系列教程07--基于内存模型实现授权

一一哥

spring springboo Spring Security OAuth

BI如何配置“花生壳”,看这一篇就够了

葡萄城技术团队

内网穿透 可视化数据

技术分享 | 数据持久化技术(Java)

霍格沃兹测试开发学社

Spring Security系列教程03--实现HTTP基本认证

一一哥

spring security HTTP springboot basic spring-boot

Spring Security系列教程01--Spring Security系列教程简介

一一哥

spring security

深度解析全链路压测实施过程

穿过生命散发芬芳

全链路压测 8月月更

Spring Security系列教程02--创建SpringSecurity项目

一一哥

Java spring security springboot 安全框架 spring-boot

1. 关联容器

小白钊钊

c++ 8月月更

Spring Security系列教程09--基于自定义数据库模型实现授权

一一哥

spring security Spring Boot 2

技术分享 | 被测系统架构与数据流分析

霍格沃兹测试开发学社

技术分享 | 测试平台开发-前端开发之Vue.js 框架的使用(二)

霍格沃兹测试开发学社

Spring Security系列教程04--实现Form表单认证

一一哥

springboot Spring Security OAuth 表单认证

全新EMQX Dashborad:易操作、可观测,集群数据尽在掌握

EMQ映云科技

物联网 IoT mqtt emqx 8月月更

2. 背包问题

小白钊钊

算法 8月月更

Spring Security系列教程06--前后端分离时的安全处理方案

一一哥

前后端分离 springsecurity 认证授权

Spring Security系列教程08--基于默认数据库模型实现授权

一一哥

数据库 spring security

软件测试 | 测试开发 | 接口测试价值与体系

测吧(北京)科技有限公司

接口测试

兆骑科创双创服务平台,项目对接,人才引进

兆骑科创凤阁

学习开发技术有哪些比较好的方法?

小谷哥

Spring Security系列教程10--基于过滤器实现图形验证码

一一哥

spring security Spring Boot 2 图片验证码

技术分享 | 被测项目需求你理解到位了么?

霍格沃兹测试开发学社

技术分享 | 测试平台开发-前端开发之Vue.js 框架(一)

霍格沃兹测试开发学社

排队助手:3 张图带你看懂「队伍合页」的经典案例场景

天天预约

小程序制作 SaaS应用 排队 排队工具

秋招如何抱佛脚?2021最新大厂Java面试真题合集(附权威答案)

收到请回复

Java 架构 语言 & 开发

如何从零开始参与 Apache 顶级开源项目?| 墙裂推荐

SelectDB

数据库 开源 程序员 社区贡献 企业号九月金秋榜

软件测试 | 测试开发 | app自动化测试(Android)-- 属性获取与断言

测吧(北京)科技有限公司

自动化测试

技术分享 | 黑盒测试方法论—等价类

霍格沃兹测试开发学社

Cloudflare的Kafka之旅:万亿规模消息处理经验分享_语言 & 开发_InfoQ精选文章