RocketMQ 4.9.2 重磅发布!

栏目: 软件资讯 · 发布时间: 2年前

内容简介:经过社区多轮投票,Apache RocketMQ 初冬的第一个版本4.9.2 终于来了! 在该版本中,优化核心特性及文档超过 40 项,并且再次对性能进行了全面提升,此外最值得关注的 RIP-7 Commitlog 多目录存储支持重磅发布。 ...

RocketMQ 4.9.2 重磅发布!

经过社区多轮投票,Apache RocketMQ 初冬的第一个版本4.9.2 终于来了!

在该版本中,优化核心特性及文档超过 40 项,并且再次对性能进行了全面提升,此外最值得关注的 RIP-7 Commitlog 多目录存储支持重磅发布。

Commitlog多目录存储支持

通过Commitlog多目录存储功能,一方面能有效利用服务器上多个磁盘的存储空间,另一方还能让单个Broker实例通过动态挂载新磁盘的方式,实现动态地扩充存储能力。具体实现的示意图如下:

RocketMQ 4.9.2 重磅发布!

要使用该功能,需要在配置文件中的 storePathCommitLog设置多个目录,目录之间使用逗号隔开,如"storePathCommitLog=/data1/commitlog,/data2/commitlog,/data3/commitlog"。

如此配置后,Broker在每次单个Commitlog文件写满之后,会选择新的目录创建下一个commitlog文件。storePathCommitLog 参数支持动态更新,但是如果从单目录切换到多目录,需要重启。此外,针对单个磁盘异常需要替换的情况,新增了readOnlyCommitLogStorePaths配置项,用于标记目录只读,通过禁写和数据过期策略,可实现单盘的平滑下线。当前,我们采用了轮询的方式来选择下一个要使用的目录,并且会自动跳过被标记只读和磁盘空间不够(默认85%阈值)的目录,用户不必担心因为磁盘空间不均衡从而导致浪费的情况。

高性能优化 

本次是4.9.1开启性能优化版本的延续: 使用LongAdder替换AtomicLong,在指标统计时,性能数倍提升。

LongAdder 与 AtomicLong 的区别在于高并发时前者将对单一变量的CAS操作分散为对数组中多个元素的CAS操作,取值时进行求和。

这里分享测试代码, 欢迎大家跑一跑,留言分享自己测试的结果。

@BenchmarkMode(Mode.Throughput)@Fork(1)@Threads(4)@Warmup(iterations = 1, time = 1)@Measurement(iterations = 2, time = 5)@State(Scope.Benchmark)public class CasVsAdder {    private AtomicLong count;    private LongAdder adder;
    @Setup    public void init() {        count = new AtomicLong(0);        adder = new LongAdder();    }

    @Benchmark    public void testCas() {        for (int i = 0; i < 10000; i++) {            count.incrementAndGet();        }    }

    @Benchmark    public void testAdder() {        for (int i = 0; i < 10000; i++) {            adder.increment();        }    }
    public static void main(String[] args) throws RunnerException {        Options options = new OptionsBuilder()                .include(CasVsAdder.class.getSimpleName())                .output(System.getProperty("user.home") + "/" + CasVsAdder.class.getSimpleName()                        + ".txt")                .build();        new Runner(options).run();    }}

实用工具 

支持元数据导出 by @panzhi33

支持命令行查询消费者配置 by @zhangjidi2016

支持DLQ topic默认可读 by @maixiaohai

...

本次版本的顺利发布,离不开RocketMQ社区的每一位参与贡献者,尤其鸣谢Apache RocketMQ Committer 黄理,江海挺,小伟等。

另外,从该版本起,每次发布新版本, 都可以在github上看到每个PR的提供者的名字和第一次贡献者的名字,比如:https://github.com/apache/rocketmq/releases/tag/rocketmq-all-4.9.2。

RocketMQ 4.9.2 重磅发布!

RocketMQ 4.9.2 重磅发布!

加入 Apache RocketMQ 社区

Apache RocketMQ自2016年走入全球开发者视野以来,已然发展成为电商、金融、教育、科技等领域技术中台最核心的数据底座。据不完全统计,单单在国内,金融100强、保险100强、财富500强、券商50强超过70%的企业在核心应用链路上规模化部署了RocketMQ,全球5朵大云也纷纷上线了RocketMQ云产品服务。在历经2代RocketMQ人的辛勤创作下,目前正迎来10年之大变革 - 下一代架构升级。
欢迎立志打造世界级分布式系统的同学加入社区,添加社区开发者微信:rocketmq666 即可进群,参与贡献,共同打造下一代消息流融合处理平台。

下载地址:

https://rocketmq.apache.org/release_notes/release-notes-4.9.2/


以上所述就是小编给大家介绍的《RocketMQ 4.9.2 重磅发布!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

领域驱动设计

领域驱动设计

埃文斯 / 赵俐、盛海艳、刘霞 / 人民邮电出版社 / 2010-11 / 69.00元

《领域驱动设计:软件核心复杂性应对之道》是领域驱动设计方面的经典之作。全书围绕着设计和开发实践,结合若干真实的项目案例,向读者阐述如何在真实的软件开发中应用领域驱动设计。书中给出了领域驱动设计的系统化方法,并将人们普遍接受的一些最佳实践综合到一起,融入了作者的见解和经验,展现了一些可扩展的设计最佳实践、已验证过的技术以及便于应对复杂领域的软件项目开发的基本原则。《领域驱动设计:软件核心复杂性应对之......一起来看看 《领域驱动设计》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

在线进制转换器
在线进制转换器

各进制数互转换器

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具