若有收获,请记得分享和转发哦
从官方这边获悉,RocketMQ在4.9.1版本中对消息发送进行了大量的优化,性能提升十分显著,接下来请跟着我一起来欣赏大神们的杰作。
根据RocketMQ4.9.1的更新日志,我们从中提取到关于消息发送性能优化的【Issues:2883】, 具体优化点如截图所示:
![d4e21ef4a8a8e2495a0cc5e3bfc884b1.png](https://img-blog.csdnimg.cn/img_convert/d4e21ef4a8a8e2495a0cc5e3bfc884b1.png)
首先先尝试对上述优化点做一个简单的介绍:
对WaitNotifyObject的锁进行优化(item2)
移除HAService中的锁(item3)
移除GroupCommitService中的锁(item4)
消除HA中不必要的数组拷贝(item5)
调整消息发送几个参数的默认值(item7)
sendMessageThreadPoolNums
useReentrantLockWhenPutMessage
flushCommitLogTimed
endTransactionThreadPoolNums
减少锁的作用范围(item8-12)
通过阅读上述的变更,总结出优化手段主要包括如下三点:
移除不必要的锁
降低锁粒度(范围)
修改消息发送相关参数
接下来结合源码,从中挑选具有代表性功能进行详细剖析,一起领悟Java高并发编程的魅力。
新版本主要是可通过调整发送线程池来动态调节事务消息的值,这个大家可以根据压测结果动态调整。