Kafka 痛点专题|AutoMQ 如何解决 Kafka 冷读副作用

解析 Kafka 和 AutoMQ 的监控 如果要实现一个全面的 Kafka 监控框架,至少应该囊括 Kafka 所在主机资源、JVM(毕竟 Kafka 的 Broker 就是一个 Java 进程)、Kafka 集群本身等的监控,监控 Kafka 集群时还需要关注其客户端程序的性能。以容器的方式运行,推荐在官方镜像的基础之上对关键配置文件做变更即可,重新构建“automqinc/automq”镜像,具体步骤如下:1)、构建目录,其中 config 目录下的配置文件全是从官方镜像拷贝出来的,当然也可以从 github 源码中直接拷贝。 阅读详情

背景

Apche Kafka (下文简称 Kafka)作为一款成功的流处理平台已经在各行各业中有广泛的应用,并且具备极其强大的软件生态。但是,其一些缺点也给使用者带来了很大的挑战。AutoMQ 是基于云原生架构实现的新一代 Kafka ,与 Kafka 100% 完全兼容。致力于解决 Kafka 原有的迁移复制低效、缺乏弹性、成本高昂等缺点,成为新一代云原生 Kafka 解决方案。

为了让读者更好地理解 AutoMQ 相比 Kafka 的优势,我们推出了 《Kafka 痛点专题》 这个系列,帮助读者更好地理解当前 Kafka 存在的痛点问题以及 AutoMQ 是如何解决这些问题的。今天主要分享的是 Kafka 中冷读(也可称追赶读,即 Catch-up Read )副作用的产生原理,以及 AutoMQ 是如何通过云原生的架构设计来避免原 Kafka 冷读带来的副作用的。

冷读是如何产生的

在消息和流系统中,冷读是常见且具有重要价值的场景,包括以下几点:

• 保证削峰填谷的效果: 消息系统通常用于业务解耦和削峰填谷。在削峰填谷场景中,消息队列可暂时保存上游数据,以便下游逐步消费。这些数据通常不在内存中,而是需要进行冷读取。因此,优化冷读效率对于提高削峰填谷的效果至关重要。

• 批处理场景广泛应用: 在与大数据分析结合时,Kafka 通常用于处理批处理场景。在这种情况下,任务需要从几个小时甚至一天前的数据开始扫描计算。冷读的效率直接影响了批处理的时效性。

• 故障恢复效率: 在实际生产环境中,消费者由于逻辑问题或业务 BUG 导致故障宕机是常见问题。消费者恢复后,需要快速消费堆积的历史数据。提高冷读效率可以帮助业务更快从消费者宕机故障中恢复,减少中断时间。

• Kafka 分区迁移时数据复制引发冷读: Kafka 在扩容时需要迁移分区数据,这时候也会引发冷读。

冷读是 Kafka 中实际应用中必然需要面临的正常需求。对于 AutoMQ 而言,我们并不会去尝试消除冷读,而是重点在于解决好 Kafka 冷读本身带来的副作用。

冷读带来的副作用

接下来我们会分析 Kafka 冷读具体会带来哪些副作用,以及为什么 Kafka 没有办法解决这些问题。

硬盘 I/O 争抢问题

Kafka 运维中的一个重要挑战是处理冷读时对硬盘 I/O 的大量占用。硬盘或云盘的单盘 IOPS 和吞吐能力有限。冷读会导致从硬盘大量读取数据,当某些分区数据在节点上分布不均时,容易造成热点访问。对大量数据的分区进行冷读会快速占用单盘的 IOPS 和吞吐资源,直接影响节点上其他 Topic 分区数据的读写性能。

Kafka 没法解决该副作用的主要原因是其本身存储实现强依赖本地存储。Kafka 的数据全部存储在 Broker 的本地磁盘上,冷读时消耗大量磁盘 I/O 导致其他读写请求需要访问磁盘时性能受限。即使像 Kafka 商业化公司 Confluent 实现了 KIP-405 所描绘的分层存储,该问题仍然没有得到彻底的解决。在 Kafka 分层存储的实现中,Kafka 仍然要求分区的最后一个 LogSegment 必须在本地磁盘上,Broker 和本地存储仍然是强依赖的。因此,Kafka 冷读时则并不能完全从 S3 或者内存从读取数据,其必然有请求需要从分区的最后一个 LogSegment 中读取数据。当 LogSegment 的数据比较大时,硬盘 I/O 的争抢问题也将会更加严重。总的来说,Kafka 采用分层存储试图一定程度去降低冷读副作用的影响,但是并没有在根本上解决问题。

Page Cache 污染

Kafka 冷读时,从磁盘加载大量数据经过 Page Cache 供消费者读取,会造成 Page Cache 的数据污染。Page Cache 的大小是比较有限的,由于本质是个缓存,当新的对象需要加入 Page Cache 时,如果其容量不足,就会驱逐一些旧的对象。

Kafka 没有做冷热隔离,当冷读发生时,大量冷数据的读取会迅速抢占 Page Cache 的容量,将其中其他 Topic 的数据驱逐出去。当其他 Topic 的消费者需要从 Page Cache 读取数据的时候就会发生 Cache Miss,进而必须从硬盘中读取数据,此时读取的延迟将会大大增加。在这种情况下,由于从硬盘加载数据,整体的吞吐性能也会快速退化。Kafka 利用 Pache Cache 结合 sendfile 系统调用在没有发生冷读时有很好的性能表现,但是一旦发生冷读,其对吞吐和读写延迟的影响将会令人非常头疼。
Kafka 没法很好的解决该问题主要还是因为其读写模型本身设计上强依赖 Page Cache 来兑现其强大的性能和吞吐的。

Zero Copy 在冷读时阻塞网络请求

Kafka 采用零拷贝技术sendfile 来避免内核态和用户态交互的开销来提升性能一直以来被大家津津乐道。但是不可否认的是, sendfile 在冷读时,会带来额外的副作用。

在 Kafka 的网络线程模型中,读写请求会共享一个网络线程池来处理网络请求。在没有冷读的理想场景下,网络线程经过 Kafka 的处理后,需要向网络返回数据时,直接从 Page Cache 加载数据返回,整个请求响应在几微秒内可以完成,整个读写流程是非常高效的。

但是如果产生了冷读,Kafka 网络线程向网络的内核发送缓冲区写数据时,调用 sendfile 需要先将磁盘加载到 Page Cache 中,然后再写到网络的内核发送缓冲区。在这个零拷贝过程中,Linux 内核态从磁盘加载数据到 Page Cache 的过程中是个同步的系统调用,因此网络线程只能同步等待其关联的数据从磁盘加载数据完成,才可以继续去处理别的工作。

Kafka 的网络线程池是被 Client 的读写网络请求共享的。冷读时,Kafka 网络线程池中大量网络线程在同步等待系统调用返回,这会阻塞新的网络请求被处理,同时也使得消费者消费的延迟进一步增加。下图演示了冷读时, sendfile 是如何影响网络线程的处理从而进一步拖慢整体的生产和消费效率的。

根据上文的原理分析可知,Kafka 之所以没办法很好的解决这个问题主要还是受限于其线程模型的设计。在 Kafka 的读写线程模型中,读写共享网络线程池,冷读时 sendfile 的慢操作没有与读写核心流程异步解耦导致了其在冷读时网络线程成为瓶颈,进而造成明显的吞吐性能下降。

AutoMQ 如何解决冷读副作用

冷热隔离

对象存储是云上最具规模化、成本和技术红利的云服务。我们可以看到,像 Confluent, Snowflake 都在基于云对象存储重塑自己的软件服务来给用户提供更低成本、更稳定和弹性的存储能力。基于云对象存储重新设计基础软件也成为当前 Infra 领域软件设计的新风尚。AutoMQ 作为一款真正意义上的云原生软件,在设计之初就确定需要将对象存储作为其主存,从而设计了流场景中,面向对象存储的流存储库 S3Stream 。该流存储库在 Github 上也已开源,可以搜索 automq-for-kafka 关注。

AutoMQ 使用对象存储作为主存储,不仅带来了极致的成本和弹性优势,另外一个非常重要的益处就是有效隔离了冷热数据,从根源上解决了 Kafka 硬盘 I/O 争抢的问题。在 AutoMQ 的读写模型中,冷读时数据会直接从对象存储上加载数据,而不是从本地磁盘上读取数据,这样就天然的隔离了冷读,自然也就不会抢占本地磁盘的 I/O 了。

此外,AutoMQ 基于对象存储实现的冷读隔离是不会有性能上的副作用的。通过并发、预读和批量读取等技术优化措施,在冷读时的吞吐性能上可以完全匹敌 Kafka。

自主管理内存不依赖 Page Cache

AutoMQ 的读写模型中并没有依赖 Page Cache,因此也自然不会有 Kafka Page Cache 污染的副作用。虽然摒弃了使用 Page Cache,但是 AutoMQ 在性能上并没有妥协,主要是因为采取了如下一系列的技术手段。

使用 Direct I/O 读写裸设备 AutoMQ 绕过文件系统,通过 Direct I/O 直接读写裸设备。这带来的好处主要是:

• 避免 Page Cache 污染: 绕过文件系统自然也就不存在 Page Cache 污染了

• 减少数据复制: 使用 Direct I/O 直接读取裸设备,数据只有一次复制,从硬件直接拷贝到应用程序的用户态。

• 减少文件系统开销: 文件系统一般需要写 Journal,管理 Metadata,在写入上会相比实际写入消耗更多的带宽以及 IOPS,写入路径也更长,所以性能上会比裸设备差。

• 更快的容灾恢复速度: AutoMQ 的 WAL 数据会保留在云盘上,然后异步刷出到对象存储。当计算实例宕机时,云盘会自动漂移挂载到其他可用的机器上,由 AutoMQ 完成容灾操作,即将其云盘上剩余的 WAL 刷出到对象存储然后再删除云盘。在这个容灾过程中,由于直接操作的裸设备,可以避免文件系统恢复的时间开销,提升容灾的时效性。

• 避免 Kafka 数据丢失: AutoMQ 需要将数据持久化到云盘才返回给客户端成功响应。在 Kafka 的默认推荐配置中,为了保证性能一般都是异步持久化数据的。当机房断电这种场景时,文件系统残留脏页会丢失导致数据丢失。

自主管理堆外内存

利用文件系统的 Page Cache 提升性能是一种比较取巧的方式。对于 Kafka 而言,意味着其无需自身实现一套内存 Cache,也不用担心其 JVM 的对象开销和 GC 问题。不得不说,在非冷读场景下,这种方式确实是有着不错的表现。但是一旦出现冷读,Kafka 用户态对 Page Cache 的默认行为干预能力就很有限,没法做一些精细化的管理。因此,像 Kafka 冷读时 Page Cache 的污染就很难处理。

AutoMQ 在设计之初就是充分考虑到了使用 Page Cache 的利弊,在自研的 S3Strean 流存储库中,实现了 JVM 堆外内存的高效自主管理。通过设计冷热隔离的缓存 BlockCache 和 LogCache,可以保证在各种场景下均可以完成高效的内存读写。在未来的迭代中,AutoMQ 也可以根据流场景对内存读写进行更加精细化地管理和优化。

异步 I/O 响应网络层

Kafka 的线程模型本质上是围绕 Page Cache 和零拷贝技术来设计的。前文也指出了其核心问题是在冷读时,网络线程同步等待磁盘读取,导致整个读写流程受阻,影响了性能。

AutoMQ 没有出现的问题也是得益于其自主实现的内存管理机制。由于没有依赖 Page Cache,AutoMQ 存储层实现时会异步加载完数据再响应到网络层,因此读写请求不会同步等待 磁盘 I/O 完成才去处理别的工作。这使得整体的读写处理变得更加高效。

冷读的性能

冷读是 Kafka 中的常见应用场景,AutoMQ 在处理 Kafka 冷读副作用时,不仅做到了冷热隔离,同时也考虑到了确保冷读性能不受影响的重要性。

AutoMQ 通过以下几种技术手段保证了冷读时的性能:

• 对象存储读取性能优化: 通过预读、并发和缓存等手段直接从对象存储读取数据,保证了整体上优异的吞吐性能。

• 云原生的存储层实现,减少网络开销: AutoMQ 利用了云盘底层的多副本机制保证了数据的可靠性,因此在 Broker 层面可以减少副本复制的网络延迟开销。从而相比 Kafka 有更好的延迟、总体吞吐表现。

以下表格的结果来自于 AutoMQ vs Kafka 的实测性能对比报告,显示在相同负载和机型下相比 Kafka,AutoMQ 冷读时可以保证不影响写入吞吐和延迟的情况下,拥有和 Kafka 相同水准的冷读性能。

对比项

追赶读过程中发送耗时

追赶读过程中对发送流量影响

追赶读峰值吞吐

AutoMQ

小于3ms

读写隔离,维持800 MiB/s

2500-2700MiB/s

Apache Kafka

大约800ms

相互影响,

下跌到150 MiB/s

2600-3000MiB/s 

(牺牲写入)

总结

本文着重剖析了 Kafka 在冷读时产生问题的原理,以及 AutoMQ 的解法。下一篇 《Kafka 痛点专题》我们将探讨 Kafka 痛点中的 No.1 ,即弹性,敬请期待。

END

关于我们

我们来自 Apache RocketMQ 和 Linux LVS 项目的核心团队,曾经见证并应对过消息队列基础设施在大型互联网公司和云计算公司的挑战。现在我们基于对象存储优先、存算分离、多云原生等技术理念,重新设计并实现了 Apache Kafka 和 Apache RocketMQ,带来高达 10 倍的成本优势和百倍的弹性效率提升。

🌟GitHub 地址:https://github.com/AutoMQ
💻 官网:https://www.automq.com👀 B站:AutoMQ官方账号🔍 视频号:AutoMQ

👉 扫二维码加入我们的社区群

关注我们,一起学习更多云原生技术干货!

大疆sdkV4以及V5webrtc推流 webrtcSDK中要用它的VideoCapturer来初始化推流 ViewdoCapturer是一个接口我们继承它 然后重建创建文件CapturerAircraft.java文件。CameraUtil.java这个是我们用来创建CapturerAircraft的一个工具。除了CapturerAircraft这个文件不一样外其他都是一样的。PlayBodyBean.java这个是我们的配置文件。下面的有个代码块第一个是v4的 第二个是v5的。接着我们来创建几个推流用到的webrtc工具。 阅读详情

相关推荐

Minitab正交试验设计:从入门到精通的完整指南

本文提供了一份使用Minitab进行正交试验设计的完整指南。从正交试验省时省力的原理讲起,详细介绍了在Minitab中创建正交表、填入数据、执行分析(包括解读ANOVA和P值)以及寻找最优参数组合的全流程。文章旨在帮助读者,特别是工艺优化和研发人员,快速掌握这一高效工具,从而用最少的实验次数锁定关键影响因素,提升工作效率与成果。

weixin_29201313的博客 465

AutoMQ:云原生 Kafka 解决方案,降低10倍成本100%完美兼容

AutoMQ 重新设计了 Kafka 的架构,基于云的基础设施,将存储分离至对象存储,实现了 Apache Kafka100% 的兼容性。它不仅提供了10 倍的成本优势,还带来了百倍的弹性,极大地提升了扩展性和性能。与传统的 Kafka 对比,AutoMQ 通过创新的存算分离架构,减少了运维复杂度,并充分利用了云环境中的共享存储特性。官网:https://www.automq.com/zhAutoMQ 通过云原生的架构优化,显著提升了 Kafka 的弹性和性能,并大幅降低了成本。

jast 1675

大麦网回流票监控实战:如何利用sign参数和cookie实现自动抢票(避坑指南)

本文详细介绍了如何利用sign参数和cookie构建大麦网回流票监控系统,实现自动化抢票。通过分析大麦网票务系统的核心机制、获取关键身份凭证、逆向分析sign签名算法,并构建完整的监控系统,帮助用户高效捕捉回流票机会。文章还提供了实战避坑指南和合法合规的注意事项,确保系统稳定运行且符合平台规则。

weixin_28568819的博客 412

AutoMQ 携手阿里云共同发布新一代云原生 Kafka,帮助得物有效压缩 85% Kafka 云支出!

以成本换效率的上云方式需要高速发展的业务来支撑,在今天降本的大环境下,以云原生,甚至多云原生重新设计的云服务相较于「Cloud-Hosted」的云服务将在弹性、成本、容量、效率等各方面有数量级的优势,云托管(Cloud-Hosted)类型的云服务即将被淘汰。稳定性有其高大上的一面,也有需要埋头苦干的另一面,聪明人一起坚持做一件事情可能是得物稳定性的内涵,郝豪提到他在业务场景的治理上,告警规则的梳理上,持续做了 3 年,从 21 年到 23 年持续在投入,每一年都有不同的方向和目标。

AutoMQ的博客 2406

CNN卷积神经网络手写数字识别实例及代码详解

本文的代码来自githup的Deep Learning的toolbox,是用Matlab实现的。感谢该toolbox的作者付出和分享。 我在应该该代码进行训练时,出现一些报错,如expand函数应用不对,flipall函数未定义等问题,对这些问题进行了修正,完成网络训练和验证。 本文mnist_uint8.mat的获取可以参照我的另一篇博客:MNIST数据库处理--matlab生成mnist_

VivienFu的专栏 6万+

基于Python的军事装备信息爬虫实战:Scrapy+Playwright+智能反反爬技术

本文将详细介绍如何使用Python构建一个高效的军事装备信息爬虫系统。我们将从基础的HTTP请求开始,逐步深入到使用Scrapy框架、Playwright浏览器自动化以及最新的反反爬技术。文章包含完整的代码实现、性能优化策略以及数据处理方案,旨在为读者提供一个全面的军事信息爬取解决方案。关键词:Python爬虫、军事装备、Scrapy、Playwright、反反爬。

2201_76125261的博客 1155

原理剖析:AutoMQ 如何实现分区持续重平衡

01 引言 在一个线上 Kafka 集群中,流量的波动、Topic 的创建和删除、Broker 的消亡和启动都随时可能发生,而这些变化可能导致流量在集群各个节点间分布不均,从而导致资源浪费、影响业务稳定。此时则需要主动将 Topic 的不同分区在各个节点间移动,以达到平衡流量和数据的目的。当前,Apache Kafka 仅提供了分区迁移工具,但具体的迁移计划则需要运维人员自行决定,而对于动...

gaoliang1719的专栏 268

Python电梯II

输入数据有若干组(最多不超过1000组),每组数据的第一行为四个如题目中所示的整数N,u,d,s,由空格分隔开。第二行为不同楼层需要上下楼的请求, 最多不超过1000个。每个请求的格式为"from-to",其中"from"和"to"为所在楼层和要到达的楼层,保证from!=to。

沐风—云端行者 910

AutoMQ 如何实现没有写性能劣化的极致冷读效率

Apache Kafka 一直以来都以极致的吞吐能力受到广大开发者和使用者的喜爱。AutoMQ[1] 在保证与 Apache Kafka 100% 兼容并且提供极致弹性和降本能力的基础上,不仅做到了相比Kafka更加极致的吞吐能力,同时还解决了Kafka冷读时,写吞吐性能劣化的问题。接下来,本文将从追赶读的实现来说明 AutoMQ 如何做到单机 1K 分区并发追尾读达到 1GB/s 的极致吞吐能力,并且在追赶读过程中避免发送流量的性能劣化。

AutoMQ的博客 1212

笔试题-2023-芯原-数字前端设计or验证【纯净题目版】

笔试题-2023-芯原-数字前端设计or验证【纯净题目版】

w0shishabi的博客 5685

汇川Easy系列PID_AT指令弹簧质量阻尼系统闭环控制仿真测试

汇川Easy系列PLC系统PID指令(温度控制PID应用编程)

RXXW_Dor的博客 764

360 如何用 AutoMQ 解决千亿级 Kafka 冷读难题

360集团采用AutoMQ解决了Kafka冷读难题,显著提升了日志检索平台性能。AutoMQ的存算分离架构通过三条独立数据路径(写入、热数据消费、冷数据读取)实现冷热隔离,将生产P99延迟从10秒降至500毫秒,积压量减少40倍,同时节省50%硬件成本。评估测试验证了其毫秒级延迟、读写隔离和分钟级弹性扩容能力。生产部署采用K8s+对象存储方案,配备集群级故障切换机制,为360的日志平台提供了更高效的云原生消息服务。

AutoMQ的博客 432

【PCL点云配准】位姿估计

本文介绍了PCL(Point Cloud Library)中TransformationEstimation模块的核心算法原理和实现方法。该模块通过多种子类(如SVD、LM、双四元数等)提供点云配准功能,支持2D/3D刚性变换估计。主要内容包括:1)各类变换估计算法的数学原理和实现细节;2)点对点/点对面两种误差度量方法;3)线性闭式解和非线性迭代两种求解方式;4)变换验证机制;5)基于三点法的完整代码示例。该模块广泛应用于SLAM、三维重建等领域,为点云配准提供了高效可靠的解决方案。

yijiujiusan的博客 242

得物使用AutoMQ构建海量数据处理的新一代可观测性架构

得物通过引入AutoMQ,成功解决了Apache Kafka在大规模数据处理中的诸多挑战。在实际应用中,AutoMQ在得物可观测性平台表现出了显著的优势,不仅降低了系统的存储和计算成本,而且大幅度提升了资源利用率和运维效率。得物可观测性平台借助AutoMQ的存算分离架构,克服了Kafka在扩展性、存储成本和运维复杂性上的局限性,实现了动态资源调整和高效的冷读优化。在双十一高峰期,AutoMQ的卓越性能和弹性扩缩容能力保证了系统的高可用性和稳定性,无需额外进行繁重的容量评估和提前扩容操作。

AutoMQ的博客 1802

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

AutoMQ-Kafka的替代方案实战

AutoMQ-kafka的替代方案实战

core815的专栏 1291

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Kafka 迁移 AutoMQ 时 Flink 位点管理的挑战与解决方案

编辑导读: AutoMQ 是一款与 Apache Kafka 100% 完全兼容的新一代 Kafka,可以做到至多 10 倍的成本降低和极速的弹性。凭借其与 Kafka 的完全兼容性可以与用户已有的 Flink 等大数据基础设施进行轻松整合。Flink 是重要的流处理引擎,与 Kafka 有着密切的关系。本文重点介绍了当用户需要将生产 Kafka 集群迁移到 AutoMQ 时,如何处理好 Flink 的位点来确保整体迁移的平滑过渡。

AutoMQ的博客 1457

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

AutoMQ:无需 Cruise Control 实现 Kafka 的自动分区再平衡

如果你在公司内部管理过 Kafka 部署,可能会执行跨集群分区重新分配操作。由于 Kafka 中计算和存储的紧密耦合,当集群成员发生变化(如添加或移除 broker)或用户希望在 broker 之间平衡负载时,分区副本需要重新分配到不同的 broker,从而导致数据迁移。虽然 Kafka 提供了处理重新分配过程的脚本,但它需要用户干预,并且在规划方面缺乏稳健性。诸如 Cruise Control 之类的工具,基于集群状态提供自动化的副本平衡,并提供更详细的重新分配规划。然而,数据迁移的问题仍然存在。

AutoMQ的博客 1357

AutoMQ 集成 Debezium

在现代企业中,数据处理需求的不断增长使得实时监控和响应数据库变化变得尤为重要。无论是电商平台的订单处理、库存管理,还是金融系统的交易监控,都需要对数据库中的变化进行实时捕捉和处理。这不仅能提高系统响应速度,还能在数据发生变化时及时采取相应的业务操作。为了实现这一目标,本文将介绍如何使用 Debezium [1] 监测 MySQL 数据库的变化,并将这些变化事件发送到 AutoMQ [2] 中。AutoMQ 作为一种高效、低成本的流处理系统,具有高弹性和高可用性,是企业实时数据处理的理想选择。

AutoMQ的博客 1100

Kafka Linking:揭秘 AutoMQ 如何实现全球首个Zero-Downtime Kafka 迁移方案

AutoMQ 是一款基于云存储全新设计的 Kafka 发行版,相较传统的 Apache Kafka 拥有 10 倍的成本优势和秒级的弹性能力。

AutoMQ的博客 1047

AutoMQ:云原生Kafka的革命性替代方案

你是否正面临Kafka集群扩展困难、跨可用区流量成本高昂、存储容量受限等痛点?AutoMQ作为一款云原生的Kafka分支,通过将存储与计算分离并迁移至S3或兼容S3的对象存储,实现了10倍成本优化、秒级弹性扩展和毫秒级延迟,彻底改变了传统Kafka的运维模式。本文将从核心优势、架构解析、快速部署和实际应用场景四个维度,带你全面了解这款革命性的消息队列解决方案。 ## 核心优势:重新定义云原生消息

gitblog_00068的博客 940

知乎启用AutoMQ替换Kafka,开辟成本优化与运维提效新纪元

作者:知乎在线架构组 王金龙。

AutoMQ的博客 1202

基于 Kafka 的经验:AutoMQ 和 MinIO 如何解决成本和弹性挑战

AutoMQ 是 Kafka 的一个开源分支,它以基于对象存储的共享存储架构取代了 Kafka 的存储层,同时 100% 复用了 Kafka 的计算层代码,保证了与 Kafka API 协议和生态系统的完全兼容性。得益于 MinIO 与 AWS S3 API 的完全兼容性,您甚至可以在私有数据中心部署 AutoMQ 集群,以获得与 Kafka API 完全兼容的流式处理系统,但提供更好的成本效益、极高的可扩展性和个位数毫秒的延迟。请注意,您只能在创建时复制密钥,因此请确保访问密钥的两个部分都是安全的。

MinIO 1539

AutoMQ vs Kafka: 来自小红书的独立深度评测与对比

Apache Kafka 分区迁移需要将分区的副本拷贝到新的节点,拷贝历史数据的同时还要追赶新写入的数据,迁移的耗时 = 分区数据量 / (迁移吞吐限制 - 分区写入吞吐),在实际生产环境中,分区迁移往往是小时级的,本测试中的 30 GiB 的分区迁移耗时就到了 15 分钟。除了迁移耗时长以外,Apache Kafka 迁移需要从硬盘读取冷数据,即使在设置了 throttle 的情况下,仍旧会因为抢占 page cache 导致发送延迟的抖动,影响服务质量。消费者逻辑问题,修复后,回溯消费历史数据。

AutoMQ的博客 1308

「布道师系列文章」宝兰德徐清康解析 Kafka 和 AutoMQ 的监控

如果要实现一个全面的 Kafka 监控框架,至少应该囊括 Kafka 所在主机资源、JVM(毕竟 Kafka 的 Broker 就是一个 Java 进程)、Kafka 集群本身等的监控,监控 Kafka 集群时还需要关注其客户端程序的性能。以容器的方式运行,推荐在官方镜像的基础之上对关键配置文件做变更即可,重新构建“automqinc/automq”镜像,具体步骤如下:1)、构建目录,其中 config 目录下的配置文件全是从官方镜像拷贝出来的,当然也可以从 github 源码中直接拷贝。

AutoMQ的博客 1389

AutoMQ 生态集成 Redpanda Console

上述过程中,搭建 AutoMQ 集群之后,我们已经知道了所有的 Broker 节点监听的地址和端口,因此我们可以通过指定 Docker 启动命令中的 KAFKA_BROKERS 参数,将 Redpanda Console 与 AutoMQ 集群建立起关联关系。下面我将分别介绍两种配置方法。监控 Topic 详情信息可以让我们深入了解消息队列的运行状况,通过浏览消息列表进行追踪和调试,查看消费者信息监控消费情况,了解分区状态确保数据分布和高可用性,管理配置信息优化性能,以及设置访问控制保障数据安全。

AutoMQ的博客 1005
上一篇: AutoMQ 社区双周精选第八期(2024.02.26~2024.03.08)
下一篇: 章文嵩等技术大咖共同探讨企业数据治理和降本增效策略运用!
AutoMQ
博客等级 码龄3年 1206粉丝 157原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值