自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 AWS 弹性伸缩特性介绍

以目前 AutoMQ 使用的两类机型为例,r6in.large 与 r6i.large 均为 2 核 16G 内存的机型,但在实际综合测试中,两者的服务能力存在着本质的区别,可以几乎认为 r6in.large 的服务能力为 r6i.large 的两倍,而两者在不同地域与可用区的分布并不均匀,当我们选择使用多可用区高可用布局的情况下,很难做到不同可用区的服务能力是平衡的。此时,弹性伸缩组会自动执行节点的替换操作,得益于 AutoMQ 的无状态架构,可以平滑的进行节点的替换。

2024-07-30 10:52:17 454

原创 如何通过 CloudCanal 实现从 Kafka 到 AutoMQ 的数据迁移

AutoMQ 基于云重新设计了 Kafka,将存储分离至对象存储,在保持与 Apache Kafka 100% 兼容的前提下,为用户提供高达10倍的成本优势和百倍的弹性优势。在企业的日常运营中,数据系统的升级和迁移是不可避免的。增量同步则在全量同步完成后,实时捕捉和同步 Kafka 中的新增和变更数据,确保在迁移过程中,两个系统之间的数据保持一致。接下来,我将以增量同步为例,详细介绍如何使用 CloudCanal 实现从 Kafka 到 AutoMQ 的数据迁移,确保数据在迁移过程中保持一致和完整。

2024-07-29 16:44:28 427

原创 AutoMQ 开源可观测性方案:夜莺 Flashcat

然而,随着集群规模的扩大和业务复杂性的增加,确保 AutoMQ 集群的稳定性、高可用性和性能优化变得尤为重要。通过使用夜莺监控系统,企业可以实时掌握 AutoMQ 集群的运行状态,及时发现和解决潜在问题,优化系统性能,确保业务的连续性和稳定性。创建完告警后,让我们来模拟高并发的消息处理场景:短时间内总共2500000条消息被发送到 AutoMQ 节点,我采用的方式是通过 Kafka SDK 的方式进行消息发送,一次共 50 个 Topic ,给每个 Topic 发送 500 条消息,共 100 次。

2024-07-29 16:13:22 342

原创 就在今晚!亚马逊云科技数据开源软件-流式数据湖 Tech Talk等你来!

现在我们基于对象存储优先、存算分离、多云原生等技术理念,重新设计并实现了 Apache Kafka 和 Apache RocketMQ,带来高达 10 倍的成本优势和百倍的弹性效率提升。无论您是经验丰富的数据工程师,还是独具慧眼的架构师,亦或是对数据湖技术满怀热忱的从业者,这场活动都将为您带来前所未有的启发和实用的解决方案。7月24日19:00-21:00,本次亚马逊云科技数据开源软件-流式数据湖 Tech Talk 即将举行。欢迎大家来观看直播,与我们共同探讨流式数据湖的未来发展与实操经验!

2024-07-24 11:41:40 244

原创 百行代码实现 Kafka 运行在 S3 之上

AutoMQ 致力于充分发挥云的优势,贯彻 Cloud-First 的理念,通过共享存储架构,AutoMQ 将数据的持久性解耦出来卸载给了像 S3、EBS 这样成熟的云存储服务,可以充分挖掘了这些云存储服务的潜力。得益于 Shared WAL 的顶层抽象和 EBS WAL 的实现基础,S3 WAL 的核心流程与 EBS WAL 的实现相同,因此 AutoMQ 团队仅在几周内即可完成了 S3 WAL 实现的支持。在这篇文章中,我们将与你分享 AutoMQ 共享流存储引擎的设计细节、背后的思考以及演进的过程。

2024-07-24 10:34:48 601

原创 活动回顾 | AutoMQ 联合 GreptimeDB 共同探讨新能源汽车数据基础设施

本次论坛多角度探讨如何通过创新的数据管理和存储架构,提升汽车系统的性能、安全性和可靠性,从而驱动行业的持续发展和创新,涵盖 AutoMQ 多模态共享存储架构、长城汽车多云多活架构的实践与探索、GreptimeDB 边云一体化数据库介绍、小红书深度解读 AutoMQ 云原生及多云容灾架构、车载嵌入式时序数据库的技术挑战和方案等议题。这不仅仅是为了应对云服务商的故障,更是为了确保长城汽车在任何时候都能够提供稳定可靠的服务,通过在多家云厂商间建立接入点,实现了跨云架构,提高了系统的容错能力和稳定性。

2024-07-18 11:35:09 525

原创 如何使用观测云监测 AutoMQ 集群状态

本文我们介绍了如何将观测云平台与 AutoMQ 完美地结合在一起,完成对 AutoMQ 集群状态信息的监测,其实还有更多进一步的高级操作,比如自定义的报警功能,自定义的数据查询等,这些都可以通过官方给出的规则进行 DIY,你可以手动试验一下这些操作,相信你会找到适合你的需求。主要显示的是当前活跃 Broker 的数量,以及总的 Topics 数量、Partitions 分区数量等,除此之外,我们也可以指定具体查询哪个节点,这个可以在 Cluster_id 里选择。

2024-07-18 11:25:44 389

原创 AutoMQ 生态集成 Redpanda Console

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

2024-07-18 11:23:03 717

原创 AutoMQ 社区双周精选第十二期(2024.06.29~2024.07.12)

Composite Object 将多个物理 Object 通过软链的形式逻辑合并成一个大的 Object,底层的物理 Object 保持 4MB 左右的大小,而 Composite Object 逻辑上可以软链 10 GiB 的数据量;欢迎 @yx9o、@jitokim、@wensongz、@vintagewang、@sullis、@szepeviktor、@llzcx 和 @mapan1984 为社区注入了新鲜的血液,并成功合并了首个 PR。on S3 抢先体验版发布!

2024-07-15 10:49:49 946

原创 活动预告|想更了解流式数据湖?亚马逊云科技数据开源软件-流式数据湖 Tech Talk来啦!

现在我们基于对象存储优先、存算分离、多云原生等技术理念,重新设计并实现了 Apache Kafka 和 Apache RocketMQ,带来高达 10 倍的成本优势和百倍的弹性效率提升。,汇聚来自 AutoMQ Apache paimon和亚马逊云科技的顶尖专家,分享他们在这一领域的最新进展和实际经验。无论您是数据工程师、架构师,还是对数据湖技术感兴趣的从业者,都能在本次活动中找到启发和实用的解决方案。课程亮点包括深入解析。此外,课程还将涵盖如何利用亚马逊云科技的强大功能来增强数据湖的性能和可扩展性。

2024-07-15 10:34:58 427

原创 AutoMQ 中的元数据管理

分区数据的读取同样会转换为对 Stream 的读取,当需要读取的数据段已不再存在于节点缓存中时,就需要向对象存储发起读取,而通过上文介绍的分区写入流程,我们已经知道元数据中已经保存了 Stream 各数据段所在的 Object,此时只需从元数据中索引出需要读取的数据段对应的 Object 列表,再向对象存储发起读取请求即可。Ranges:随着分区的迁移,Stream 也会在不同的节点上产生数据,Ranges 保存着 Stream 在各个节点打开期间的位点变化,在后文中会具体介绍 Ranges 的作用。

2024-07-14 17:30:49 914

原创 AutoMQ 产品动态 | 发布 1.1.0,兼容至 Apache Kafka 3.7,支持 Kaf

现在我们基于对象存储优先、存算分离、多云原生等技术理念,重新设计并实现了 Apache Kafka 和 Apache RocketMQ,带来高达 10 倍的成本优势和百倍的弹性效率提升。AutoMQ 进一步发挥云存储的优势,在 1.1.0 版本宣布支持 Regional ESSD,为客户在多 AZ 容灾场景下提供更低的故障 RTO。KIP-714:新增多语言统一的客户端 Metrics,提供从服务端查询客户端 Metrics 的能力(3.7.0)

2024-07-09 15:38:48 1175

原创 基于Netty的自研流系统缓存实现挑战: 内存碎片与OOM困境

在离线批处理和削峰填谷场景,数据冷读追求高吞吐。不过异常的是,AutoMQ 申请的内存量和 Netty 实际申请的内存量有较大的差距,并且随着运行两者之间的差值越来越大,甚至有时候 Netty 实际升级的内存是 AutoMQ 申请的内存量的两倍,这个差值为内存分配的内存碎片。假设再申请一个 9MB 的内存,虽然刚才的 PoolChunk 仍有 12MB 的剩余空间,但是由于 Buddy 内存分配算法的原理,index=1 已经被占用了部分,此时只能新开一个 PoolChunk 来分配 9MB 的内存。

2024-07-09 15:21:58 692

原创 事务性数据系统中复制与 S3 Express One Zone 的成本分析

原文链接:https://jack-vanlightly.com/blog/2024/6/10/a-cost-analysis-of-replication-vs-s3-express-one-zone-in-transactional-data-systems作者|Jack Vanlightly AutoMQ 导读 随着 S3 在构建现代化数据基础设施的流行,广大 data infra 领域的开发者都非常关注 AWS S3 的一举一动。像 WarpStream[2] 以及 Confluent Fr

2024-07-09 14:54:57 1003

原创 AutoMQ 与蚂蚁数科达成战略合作

AutoMQ 是业内领先的消息和流存储服务提供商,基于云原生基础设施重新设计了 Kafka、RocketMQ,将存储层分离到对象存储,在 100%兼容原有功能的基础上,充分利用云的弹性能力,为客户提供了高达 10 倍的成本优势和百倍的弹性效率提升。此次 AutoMQ 和蚂蚁数科 SOFAStack 的合作,将充分发挥 AutoMQ 在消息、流存储领域的产品技术优势与SOFAStack 在金融、互联网、信创领域的渠道和品牌资质优势。新客户一键开通,即可免费试用一个月。

2024-07-09 14:41:06 507

原创 Java ZGC 深度剖析及其在构建低延迟流系统中的实践心得

在本文中,我们将详细介绍 ZGC 的工作原理,以及如何通过调整和优化 ZGC 的配置来实现更低的延迟,从而提高 Java 应用程序的性能和响应能力。ZGC 中,读屏障注入的代码会检查对象指针的颜色,如果颜色是“坏的”,那么读屏障会尝试修复颜色——更新指针,使它指向对象的新位置,或者迁移对象本身。ZGC 使用了一种称为“着色指针(Colored Pointers,又称染色指针)”的技术,它将对象指针的高位用于存储额外的信息,这些额外的信息可以用于标记对象的状态,进而帮助 ZGC 实现高效的并发垃圾回收。

2024-07-09 14:27:42 616

原创 AutoMQ 生态集成 Kafdrop-ui

通过提供一个用户友好的界面,Kafdrop 大大简化了 Kafka 集群的监控和管理过程,使得用户无需依赖复杂的命令行工具就能快速获取集群的状态信息。将上一步生成的命令中的 --controller-list 和 --broker-list 替换为你的主机信息,具体来说,将它们替换为环境准备中提到的 3 台 CONTROLLER 和 2 台 BROKER 的 IP 地址,并且使用默认的 9092 和 9093 端口。对于 AutoMQ 新增的参数,将使用 AutoMQ 提供的默认值。

2024-07-08 18:49:21 627

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

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

2024-07-08 18:33:12 884

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

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

2024-06-17 19:08:47 1117

原创 AutoMQ 社区双周精选第十一期(2024.05.27~2024.06.12)

现在我们基于对象存储优先、存算分离、多云原生等技术理念,重新设计并实现了 Apache Kafka 和 Apache RocketMQ,带来高达 10 倍的成本优势和百倍的弹性效率提升。在过去两周里,主干动态方面,AutoMQ 跟进了 Apache Kafka 3.4.x BUG 修复,并进行了CPU & GC 性能优化。以上是第十一期《双周精选》的内容,欢迎关注我们的公众号,我们会定期更新 AutoMQ 社区的进展。同时,也诚邀各位开源爱好者持续关注我们社区,跟我们一起构建云原生消息中间件!

2024-06-17 17:32:21 406

原创 AutoMQ 生态集成 CubeFS

对象网关的作用在于,它提供了与 S3 兼容的对象存储接口,这使得 CubeFS 不仅能够支持传统的 POSIX 文件系统接口,还能够支持 S3 兼容的对象存储接口。AutoMQ 创新的共享存储架构需要低成本的对象存储,而 CubeFS 支持 S3 兼容接口,其中 ObjectNode 提供兼容 S3 的对象存储接口来操作 CubeFS 中的文件,因此可以使用 S3Browser、S3Cmd 等开源工具或者原生的 Amazon S3 SDK 操作 CubeFS 中的文件。

2024-06-17 17:24:35 461

原创 AutoMQ 生态集成 Tigris

将上一步生成的命令中的 --controller-list 和 --broker-list 替换为你的主机信息,具体来说,将它们替换为环境准备中提到的 3 台 CONTROLLER 和 2 台 BROKER 的 IP 地址,并且使用默认的 9092 和 9093 端口。例如,在 192.168.0.1 上启动第一个 CONTROLLER 进程,执行生成的启动命令列表中的第一条命令。Tigris[1]是一个全球分布式的兼容 S3 的对象存储服务,它允许你存储和访问任意数量的数据,具有广泛的使用场景。

2024-06-06 11:23:31 404

原创 Kafka 如何基于 KRaft 实现集群最终一致性协调

Controller 的内存状态都通过 Timeline 数据结构来维护,当出现 Leader 切换时,旧的 Leader 会将 Timeline 数据结构的数据回滚到上一个已经被 KRaft 多数派确认的状态,来保证旧 Leader 内存中不会有脏数据。整个集群的状态维护和一致性协调都是基于 KRaft 中的事件。多节点之间的内存状态:KRaft 底层保证了多节点的 KRaft Log 是一致的,然后基于 “内存状态与 KRaft” 的一致性,通过传递性原则,因此多节点之间的内存状态也是一致的;

2024-06-06 10:59:49 682

原创 云实例初始化的行业标准:Cloud-Init

通过使用 Cloud-Init,用户可以为云实例定制启动脚本和配置文件,从而实现真正的“一次配置,到处运行”,大幅提升了云资源的部署效率和灵活性。对于云提供商,它提供了可以与其云集成的实例设置。通过观察 Cloud-Init 支持的数据源(datasource),可以发现其兼容性极强,不仅支持众多云服务提供商,如 AWS(亚马逊云服务)、Azure(微软云)、Aliyun(阿里云),还包括多种私有云和容器虚拟化部署方案,例如 CloudStack、OpenNebula、OpenStack 和 LXD。

2024-06-03 15:46:18 411

原创 「布道师系列文章」众安保险王凯解析 Kafka 网络通信

这里还有一个 RequestChannel(ArrayBlockingQueue),用于建立 Processor 和 Handler 的连接,MainReactor(Acceptor)只负责监听 OP_ACCEPT 事件, 监听到之后把 SocketChannel 传递给 SubReactor(Processor), 每个 Processor 都有自己的 Selector,SubReactor 会监听并处理其他的事件,并最终把具体的请求传递给 KafkaRequestHandlerPool。

2024-06-03 15:37:26 646 1

原创 AutoMQ 自动化持续测试平台技术内幕

再来看下 AbstractTask 的其他方法可以发现它继承了 Runnable 接口,通过重写 run 方法来依次执行 prepare、warmup、workload、cleanup 四个生命周期,这样就可以将 Task 交给一个线程来执行Controller 启动时会创建一个任务循环,根据用户需要创建出对应的 Task 对象后调用 start 方法来启动一个新线程运行该任务,然后 Controller 会调用 join 方法等待 Task 的生命周期结束,再继续运行下一个任务。

2024-05-30 18:09:48 1113

原创 AutoMQ 生态集成 Ceph

AutoMQ[2] 创新的共享存储架构需要同时使用低延迟的块设备以及低成本的对象存储,而 Ceph 同时支持 POSIX 和 S3 访问协议,因此对于 AutoMQ 具有很好的适配性。将上一步生成的命令中的 --controller-list 和 --broker-list 替换为你的主机信息,具体来说,将它们替换为环境准备中提到的 3 台 CONTROLLER 和 2 台 BROKER 的 IP 地址,并且使用默认的 9092 和 9093 端口。在以下示例中,vdb 是未分区的裸块设备。

2024-05-30 17:31:07 750

原创 AutoMQ 生态集成 MinIO

得益于 MinIO 对 S3 API 的完全兼容,即使在私有数据中心,你仍然可以部署 AutoMQ 集群来获得一个与 Kafka 完全兼容,但是具备更好成本效益、极致弹性、个位数毫秒延迟的流系统。将上一步生成的命令中的 --controller-list 和 --broker-list 替换为你的主机信息,具体来说,将它们替换为环境准备中提到的 3 台 CONTROLLER 和 2 台 BROKER 的 IP 地址,并且使用默认的 9092 和 9093 端口。在以下示例中,vdb 是未分区的裸块设备。

2024-05-30 17:09:36 713

原创 活动预告|来 GIAC 大会听大数据降本利器:AutoMQ 基于云原生重新设计的 Kafka

大会将聚焦互联网架构热门的 AIGC、效能提升、 云原生架构、数据智能、新硬件等领域,甄选前沿的有典型代表性的技术创新及研发实践的架构案例。100多位行业领军人物和革新者将出席大会,并通过精彩的主题演讲、实践案例分享,以及前瞻性的技术讨论,帮助和指导听众了解和改进互联网构建方式。现在我们基于对象存储优先、存算分离、多云原生等技术理念,重新设计并实现了 Apache Kafka 和 Apache RocketMQ,带来高达 10 倍的成本优势和百倍的弹性效率提升。更多会议详情可以点击原文链接~

2024-05-23 18:10:25 349

原创 AutoMQ 社区双周精选第十期

我们是来自 Apache RocketMQ 和 Linux LVS 项目的核心团队,曾经见证并应对过消息队列基础设施在大型互联网公司和云计算公司的挑战。在过去两周里,主干动态方面,AutoMQ 发布了 1.0.5 版本,该版本将默认日志滚动方式从小时滚动切换到大小滚动,且优化了大规模对象删除的性能。另外,AutoBalancing 调度加速,对于优化产生的 Action,采用攒批间隔策略执行,并进行了攒批约束。以上是第十期《双周精选》的内容,欢迎关注我们的公众号,我们会定期更新 AutoMQ 社区的进展。

2024-05-23 14:24:07 432

原创 AutoMQ 对象存储数据高效组织的秘密: Compaction

迭代计划制定完成后,就可以发起实际的读写请求了,为了最小化对象存储的 API 调用成本,在每轮迭代开始前会将本轮迭代需要读取的数据段按照所属的对象进行分组,由于 Compaction 的迭代顺序本身就是按照 Stream Id -> Offset 排序的,所以 SSO 中相邻的数据段可以被合并成一个 API 被读取,当一次迭代中的数据段被读取到本地完成拼装后即可触发上传。每次迭代中所需产生的对象都完成上传后,即可将此次迭代读取到内存中的数据段全部清除,从而为下一次迭代留出空间。

2024-05-23 14:13:19 643

原创 盘点 AutoMQ 深度使用的阿里云云原生技术

作者|周新宇,AutoMQ 联合创始人 & CTO 导读 AutoMQ[1] 是新一代基于共享存储架构实现的云原生 Kafka。得益于其存算分离的共享存储架构,通过和阿里云合作,深度使用阿里云可靠、先进的云服务如对象存储OSS、块存储 ESSD、弹性伸缩ESS以及抢占式实例实现了相比 Apache Kafka 10倍的成本优势并且提供了自动弹性的能力。引领消息和流存储走向云原生时代,助力客户实现云端业务能力提升是包括阿里云、Auto MQ等在内的每一家云服务提供商的使命。随着服务的不断深入

2024-05-20 17:13:57 622 1

原创 AutoMQ 生态集成 Apache Doris

Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。本文将介绍如何使用 Apache Doris Routine Load 将 AutoMQ 中的数据导入 Doris。在 Apache Doris 的命令行中创建一个接收 JSON 数据的 Routine Load 作业,用来持续导入 AutoMQ Kafka topic 中的数据。

2024-05-20 17:11:34 676

原创 AutoMQ 产品动态 | 企业版正式上线阿里云、AWS 中国区云市场

企业版支持用户在控制台一键、自助升级集群版本,并保证升级期间集群平稳运行,对应用无感。Kafka 集群间平滑迁移相对复杂,AutoMQ 企业版基于 MirrorMaker2 提供了全托管迁移工具,支持用户白屏化、分批次操作,从 Apache Kafka 迁移至 AutoMQ。企业版支持同城 3AZ 容灾集群,用户创建 AutoMQ 集群时可以任意选择1 个或 3 个不同的可用区进行部署。企业客户线下 IDC、私有云使用 AutoMQ 企业版,可以提前购买订阅许可证,然后离线交付和激活管理。

2024-05-20 16:45:55 404

原创 原理剖析| 一文搞懂 Kafka Producer(上)

retry.backoff.ms 与 retry.backoff.max.ms二者组合控制发送失败后重试的指数退避策略——随着重试次数的增加,从 retry.backoff.ms 开始按照 2 的指数次幂增加重试等待时间,并增加一个 20% 的扰动,且最大不超过 retry.backoff.max.ms。其包含1.producer 内部攒批的时间2.向 broker 发送请求并等待返回的时间3.每次重试的时间它的值应不小于 linger.ms + request.timeout.ms。

2024-05-16 19:32:51 446

原创 分层存储无法拯救 Kafka

01引言 Apache Kafka 自诞生之日起,就以其卓越的设计和强大的功能,成为了流处理领域的标杆。它不仅定义了现代流处理架构,更以其独特的分布式日志抽象,为实时数据流的处理和分析提供了前所未有的能力。Kafka 的成功,在于它能够满足各种规模企业对于高吞吐量、低延迟数据处理的需求,经过多年的发展铸就了极其丰富的 Kafka 生态,成为了事实上的行业标准。然而,随着云计算和云原生技术的飞速发展,Kafka 面临的挑战也日益严峻。传统的存储架构已难以适应云环境下用户对更优成本、弹性的诉求,这引发了大

2024-05-11 16:25:54 1035

原创 AutoMQ 系统测试体系揭秘

除了适配已有的系统测试 case,在 2024 年 1 月,我们还全量改造了所有 case 以支持 KRaft 模式的测试:由于 Kafka 早期是基于 zk 集群运行的,大量系统测试还是仅限 zk 模式下运行的,我们梳理并改造了相关测试,以支持 KRaft 模式下的验证。整个流程可以实现自动化运行。:ducktape 的基本测试资源为 Service,本目录下是 Kafka 集群中各种测试资源对 Service 的实现,其中最重要的就是 KafkaService (对应的是 Kafka 集群);

2024-04-29 14:57:07 514 3

原创 Kafka Exactly Once 语义实现原理:幂等性与事务消息

我们将探讨 Kafka 事务的流程,事务提供的 ACID 保证,以及在实际应用中可能遇到的一些限制。上图是一个典型的 Kafka 事务的流程,我们可以看到:MySQL 的 binlog 作为上游数据源将数据写入到 Kafka 中,Spark Streaming 从 Kafka 中读取数据并进行处理,最后将处理结果写入到另外两个 Topic 中(图中三个 Topic 位于同一集群中)。Kafka 的发送幂等是通过序列号来实现的,每个消息都会被分配一个序列号,序列号是递增的,这样就可以保证消息的顺序性。

2024-04-28 14:33:41 1388 3

原创 「布道师系列文章」小红书黄章衡:AutoMQ Serverless 基石-秒级分区迁移

分区迁移依赖大量数据同步的完成,以一个 100MB/s 流量的 Kafka 分区为例,运行一天产生的数据量约为 8.2T,如果此时需要将该分区迁移到其他 Broker,则需要对全量数据进行复制,即使对拥有 1 Gbps 带宽的节点,也需要小时级的时间来完成迁移,这使得 Apache Kafka 集群几乎不具备实时弹性能力。在 Apache Kafka 中,由于存储和计算紧密耦合,集群扩容往往需要搬迁 Partition 数据,这个过程需要耗费大量的时间和资源,在高峰期则无法高效的完成扩容。

2024-04-24 17:17:11 659 3

原创 云上如何实现 Autoscaling: AutoMQ 的实战经验与教训

因此提供可选的定时弹性策略对于弹性的生产应用是十分重要的。虽然私有云也可以做到类似的效果,但是同样预留 10%的限制资源,在私有云环境可能是 100 台机器,在 aws 上可能是 10000 台机器,大家弹性的上限是不同的。下图展示了 AutoMQ 在一个流量有变化的负载下,集群规模和集群网络流量的变化关系,可以看到 Broker 数量很好的拟合了流量曲线的变化,达到了自动弹性的效果。但是按照近年来的趋势,例如 Kubernetes 的兴起,我们可以预见的是,私有环境的技术底座未来和公有云是趋同的。

2024-04-24 17:11:07 488

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除