RocketMQ 4.9.2 重磅发布!

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

内容简介:经过社区多轮投票,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 重磅发布!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Types and Programming Languages

Types and Programming Languages

Benjamin C. Pierce / The MIT Press / 2002-2-1 / USD 95.00

A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute. The study of typ......一起来看看 《Types and Programming Languages》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器