RocketMQ 4.9.2 重磅发布!
经过社区多轮投票,Apache RocketMQ 初冬的第一个版本4.9.2 终于来了!
在该版本中,优化核心特性及文档超过 40 项,并且再次对性能进行了全面提升,此外最值得关注的 RIP-7 Commitlog 多目录存储支持重磅发布。
Commitlog多目录存储支持
通过Commitlog多目录存储功能,一方面能有效利用服务器上多个磁盘的存储空间,另一方还能让单个Broker实例通过动态挂载新磁盘的方式,实现动态地扩充存储能力。具体实现的示意图如下:
要使用该功能,需要在配置文件中的 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。
加入 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/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Snack3 v3.2.4 已经发布,微型 JSON 框架
Snack3 v3.2.4 已经发布,微型 JSON 框架 此版本更新内容包括: 增加接口 ONode::getRawString() 增加接口 ONode::getRawNumber() 增加接口 ONode::getRawBoolean() 增加接口 ONode::getRawDate() 增加接口 Options::getFeatures() 增加 @ONodeAttr 注解,取代旧的 @Nodename Options 取消功能特性代码,只留配置特性 增加接口 ONode::options(ops->...); 取消 Act0, Act1, Fun0, Fun4 临时功能接口 增加更复杂的泛型传导 详情查看:https://gitee.com/noear/snack3/releases/v3.2.4
- 下一篇
Jeepay 1.11.0 发布:增加 PayPal 支付通道
Jeepay是一套适合互联网企业使用的开源支付系统,支持多渠道服务商和普通商户模式。已对接微信支付,支付宝,云闪付官方接口,支持聚合码支付。 v1.11.0版本升级内容: 1. 增加PayPal支付通道(感谢 @青木) 2. 增加阿里云RocketMQ商业版支持(感谢 @pimh) 3. 解决fastjson版本导致toJson问题 4. 优化微信子商户的appID和自openID设置问题 5. 优化微信支付证书设置(退款问题) 6. 接口增加String类型处理 更多升级日志:https://www.jeequan.com/dev/update/category_1016.html 项目特点 支持多渠道对接,支付网关自动路由 已对接微信服务商和普通商户接口,支持V2和V3接口 已对接支付宝服务商和普通商户接口,支持RSA和RSA2签名 已对接云闪付服务商接口,可选择多家支付机构 提供http形式接口,提供各语言的sdk实现,方便对接 接口请求和响应数据采用签名机制,保证交易安全可靠 系统安全,支持分布式部署,高并发 管理端包括运营平台和商户系统 管理平台操作界面简洁、易用 支付平台...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Linux系统CentOS6、CentOS7手动修改IP地址
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- 2048小游戏-低调大师作品