RocketMQ 这样做,压测后性能提高 30%

ea1775d00175b6b1abc05452b742731d.png

若有收获,请记得分享和转发哦

从官方这边获悉,RocketMQ在4.9.1版本中对消息发送进行了大量的优化,性能提升十分显著,接下来请跟着我一起来欣赏大神们的杰作。

根据RocketMQ4.9.1的更新日志,我们从中提取到关于消息发送性能优化的【Issues:2883】, 具体优化点如截图所示:

d4e21ef4a8a8e2495a0cc5e3bfc884b1.png

首先先尝试对上述优化点做一个简单的介绍:

  • 对WaitNotifyObject的锁进行优化(item2)

  • 移除HAService中的锁(item3)

  • 移除GroupCommitService中的锁(item4)

  • 消除HA中不必要的数组拷贝(item5)

  • 调整消息发送几个参数的默认值(item7)

    • sendMessageThreadPoolNums

    • useReentrantLockWhenPutMessage

    • flushCommitLogTimed

    • endTransactionThreadPoolNums

  • 减少锁的作用范围(item8-12)

通过阅读上述的变更,总结出优化手段主要包括如下三点:

  • 移除不必要的锁

  • 降低锁粒度(范围)

  • 修改消息发送相关参数

接下来结合源码,从中挑选具有代表性功能进行详细剖析,一起领悟Java高并发编程的魅力。

758c32cedfa3b05b45e03fd5b88c87be.png

b927c95c3f4f3b8965ddaf0673b82ee0.png

6b8a73bc014798c0fc65281f034220a4.png

de9dd8d6a95c4bc363527779649d085c.png

04dbc38c869608b0171235a215825073.png

6c36206028ce46602afb5198b414c082.png

04d4a5cc2a9962e8b0998833ab100de8.png

ed583d16851063c4a9fb2a791b475ead.png

2833512f56cd5b51735b892ae6d289a8.png

e1087a42328362ba03232de2cae58023.png

8c02a69c2345fb17c7cd8ca5e9f67296.png新版本主要是可通过调整发送线程池来动态调节事务消息的值,这个大家可以根据压测结果动态调整。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值