AutoMQ 社区双周精选第二期(11.20-12.01)
本期概要
在开源的第二个双周里,作为一个成长中的开源项目,AutoMQ做了很多的优化和重构,以下是相关重点动态的总结。
AutoMQ Kafka:写链路耗时优化、快慢读隔离、Spot 实例强制回收容灾。
AutoMQ RocketMQ:历史数据冷读优化、LogCache 读写耗时优化、发布 v0.0.3-alpha 版本、发布 Helm Chart、发布文档站。
AutoMQ Kafka 精选动态
写链路耗时优化
原来所有的写入和回调都会放到一个单线程线程池去进行处理来确保数据安全,该方式存在线程上下文切换通信、单线程处理排队两个问题。本次优化将写入流程中的数据结构改造成线程并发安全模式,使得不同 stream 之间可以并发进行写入,AutoMQ Kafka 客户端平均写入耗时下降 0.3ms。 https://github.com/AutoMQ/automq-for-rocketmq/pull/728 https://github.com/AutoMQ/automq-for-rocketmq/pull/729 https://github.com/AutoMQ/automq-for-rocketmq/pull/743
快慢读隔离
隔离从 Cache 读取的快读和从 S3 的读取的慢读,避免慢读占满快读的线程池影响快读。 https://github.com/AutoMQ/automq-for-kafka/pull/472
Spot 实例强制回收容灾
在上期精选中提及进度的Spot 实例强制回收容灾已经完成。Spot(竞价实例)相比按需实例可以便宜至多 90 %,但问题是它可能不经通知就强制回收。该特性支持 Spot 实例强制回收的情况下,仍旧可以将数据卷挂载到存活的机器,进行秒级容灾恢复。 https://github.com/AutoMQ/automq-for-kafka/issues/447
AutoMQ RocketMQ 精选动态
Stream 模块性能优化
历史数据冷读优化
历史数据追赶读优化,Fetch 请求(50MB & 50 stream)冷读穿透到 S3 场景,单次 Fetch 耗时从 4s 优化到 100ms。即使是完全穿透冷读,S3 读取吞吐效率也是很高的。 https://github.com/AutoMQ/automq-for-rocketmq/pull/766
LogCache 读写耗时优化
增加上次 Cache 读取位点记录,避免每次从 LogCache 读取数据都需要二分查找定位,10W 个消息下 10W 次查询时间从 71s 优化到 86ms。https://github.com/AutoMQ/automq-for-rocketmq/pull/731 通过读写锁,将 LogCache 升级成线程并发安全的数据结构,提升 LogCache 读取并发效率。 https://github.com/AutoMQ/automq-for-rocketmq/pull/701
发布 v0.0.3-alpha 版本
这个版本包含了以下功能和优化: 1)稳定性与性能提升:修复了潜在的 OOM 问题以及提升 stream 模块性能 详见Changelog:https://github.com/AutoMQ/automq-for-rocketmq/compare/v0.0.2-alpha...v0.0.3-alpha 2)工程化建设:引入 Nightly build和 E2E test CI https://hub.docker.com/r/automqinc/automq-for-rocketmq/tags https://github.com/AutoMQ/automq-for-rocketmq/actions/workflows/build-ci.yml 3)可观测性提升:为 stream 模块引入 Metrics;为 Proxy、Store 模块引入 Trace https://github.com/AutoMQ/automq-for-rocketmq/pull/766
发布 Helm Chart
现在可以使用 Helm Chart 快速在 Kubernetes 中创建 AutoMQ RocketMQ 集群。
$ helm repo add automq https://charts.automq.com $ helm search repo automq NAME CHART VERSION APP VERSION DESCRIPTION automq/automq-for-rocketmq 0.0.4 v0.0.3-alpha A Helm chart for automq-for-rocketmq
部署该 Chart 会创建一个 AutoMQ RocketMQ Broker 以及依赖的 MySQL 与 Minio 组件。后续会陆续加入可选的可观测性依赖组件。
发布文档站
介绍了 AutoMQ RocketMQ 基本使用方式,包含:本地构建、使用 docker compose 部署、在 Kubernetes 上部署。以及使用 CLI 运维集群模式,管理 Topic 等资源。 https://docs.automq.com/zh/docs/automq-rocketmq/RmuXwhb5Xi9zjCkrInRcCz0UnTe
More Things
与小红书的同学共创对象存储跨地域容灾方案 https://github.com/AutoMQ/automq-for-kafka/issues/477
以上是第二期《双周精选》的内容,欢迎关注我们的公众号,我们会定期更新AutoMQ社区的进展。同时,也诚邀各位开源爱好者持续关注我们社区,跟我们一起构建云原生消息中间件!
END
关于我们
AutoMQ 是一家专业的消息队列和流存储软件服务供应商。AutoMQ 开源的 AutoMQ Kafka 和 AutoMQ RocketMQ 基于云对 Apache Kafka、Apache RocketMQ 消息引擎进行重新设计与实现,在充分利用云上的竞价实例、对象存储等服务的基础上,兑现了云设施的规模化红利,带来了下一代更稳定、高效的消息引擎。此外,AutoMQ 推出的 RocketMQ Copilot 专家系统也重新定义了 RocketMQ 消息运维的新范式,赋能消息运维人员更好的管理消息集群。
🌟 GitHub 地址:https://github.com/AutoMQ
👀 B站:AutoMQ官方账号
🔍 视频号:AutoMQ
👉 扫二维码加入我们的社区群
关注我们,一起学习更多云原生干货
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
云原生周刊:Kubernetes v1.29 新特性一览
开源项目推荐 kubedog Kubedog 是一个用于在 CI/CD 部署管道中监视和跟踪 Kubernetes 资源的库。 这个库被用于 werf CI/CD 工具中,在部署过程中跟踪资源。 RunWhen Local runwhen-local 是一个工具,用于在本地环境中运行 runwhen 脚本。runwhen 是一个灵活的任务调度工具,可以根据条件和时间表来执行任务。通过 runwhen-local,开发者可以在本地测试和调试 runwhen 脚本,以确保其正确运行。 KubeGateway kube-gateway 是字节跳动内部管理海量 kubernetes 集群的最佳实践。 它是为 kube-apiserver 的 HTTP2 流量专门设计并定制的七层负载均衡代理。 目标是为海量的大规模 kubernetes 集群(千级 node 以上)提供灵活的稳定的流量治理方案。 flannel Flannel 是为 Kubernetes 设计的一种简单且易于配置的第三层网络结构的解决方案。 文章推荐 Kubernetes v1.29 新特性一览 这篇文章介绍了 Kubernet...
- 下一篇
故障解析丨导入字符串NULL导致主从报错
1.背景概述 目前需要搭建一个从库,由于单表数据量较大,时间比较有限,考虑到导入导出的时间,并且GreatSQL支持并行load data的功能,能够加速数据的导入,因此决定使用 select into outfile 和 load data 的方式进行数据的迁移; 在数据导入完成后进行数据同步,从库发生报错 1032 找不到记录,但是登录从库中可以查询到此条记录,这里就很奇怪; 最后通过解析relaylog,根据relaylog中的update记录,以每个字段为查询条件进行查询,发现是由于NULL值列导致的,主库这列的值是 NULL,从库在导入后导成了字符串"NULL",因此导致回放update操作时匹配不到数据而报错1032. 2.问题复现 本次测试基于 GreatSQL 8.0.32-24 2.1 初始化2个单机实例 略 2.2 主节点创建测试表 greatsql> create database test; greatsql> use test; greatsql> create table t1 (id int, name varchar(30), age ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,CentOS7官方镜像安装Oracle11G