Skip to main content

Release Notes - Apache RocketMQ - Version 4.9.3

· 6 min read

Below is a summary of the issues addressed in the 4.9.3 release of RocketMQ. For full documentation of the release, a guide to get started, please refer to Quick Start.

Feature

  • [RIP-9] - [RIP-9] add DefaultPullConsumer api doc
  • [RIP-28] - [RIP-28] light message queue(LMQ)
  • [ISSUE-2986] - [ISSUE-2986] - Support for multiple ACL files in a fixed directory

Improvement

  • [ISSUE-3585] - [ISSUE-3585] - [Part F] eliminate regex match in topic/group name check
  • [ISSUE-3585] - [ISSUE-3585] - [Part H] Avoid unnecessary StringBuilder resizing on critical path
  • [ISSUE-3585] - [ISSUE-3585] - [Part J] Use MappedByteBuffer instead of FileChannel to …
  • [ISSUE-3223] - [ISSUE-3223] - Optimize startup script to support greater jdk version
  • [ISSUE-3449] - [ISSUE-3449] - Delayed message supports asynchronous delivery
  • [ISSUE-3487] - [ISSUE-3487] - Benchmark supports custom AK/SK
  • [ISSUE-3832] - [ISSUE-3832] - in order to improve the performance by change the variable location of queueId
  • [ISSUE-3827] - [ISSUE-3827] - Improve Performance of transactional message and schedule message
  • [ISSUE-3173] - [ISSUE-3173] - Isolate Broker logs when multiple Broker services are deployed on the same machine.
  • [ISSUE-3825] - [ISSUE-3825] - Use default SO_SNDBUF/SO_RCVBUF/WRITE_BUFFER_WATER_MARK value
  • [ISSUE-3818] - [ISSUE-3818] - update guava to 31.0.1-jre
  • [ISSUE-3812] - [ISSUE-3812] - DefaultMQProducer#sendKernelImpl Line760 tranMsg does not need to check for null when using Boolean.parseBoolean()
  • [PR-3695] - [PR-3695] Remove useless code
  • [PR-3850] - [PR-3850] Re-enable testing on ARM64
  • [PR-3762] - [PR-3762] Avoid new lines in log
  • [PR-3269] - [PR-3269] add defaultRequestProcessor test
  • [PR-3674] - [PR-3674] add tests for computePullFromWhereWithException
  • [ISSUE-3674] - [ISSUE-3674] Add unit test for AllocateMessageQueueAveragelyByCircle
  • [ISSUE-1665] - [ISSUE-1665] - Add more unit test for Validators
  • [ISSUE-3674] - [ISSUE-3674] - add tests for AllocateMessageQueueAveragely
  • [ISSUE-3602] - [ISSUE-3602] - add AdminBrokerProcessor Test
  • [ISSUE-3674] - [ISSUE-3674] - Improve the test cases of the tools module
  • [ISSUE-3724] - [ISSUE-3724] - : Polish the unit test of class ConsumeMessageConcurrentlyService
  • [PR-3214] - [PR-3214] optimize namesrv default address docs
  • [ISSUE-3692] - [ISSUE-3692] - docs: Modify the title content about the message query documentation.
  • [ISSUE-3757] - [ISSUE-3757] - docs: Polish the document 'Design_Query.md'.
  • [ISSUE-3801] - [ISSUE-3801] - Polish the document 'CLITools.md'.
  • [ISSUE-3794] - [ISSUE-3794] - add DefaultMQPullConsumer document specification
  • [ISSUE-3774] - [ISSUE-3774] - docs: Polish the document 'Example_Transaction.md'.
  • [ISSUE-3424] - [ISSUE-3424] - Polish the doc for tracing parts.
  • [ISSUE-3550] - [ISSUE-3550] - doc:fix typo in readme
  • [ISSUE-3782] - [ISSUE-3782] - docs: Fix the default value of parameter 'sendMsgTimeout'.
  • [ISSUE-3863] - [ISSUE-3863] - Updated Notice file to 2022
  • [ISSUE-3853] - [ISSUE-3853] - add log for interruptedException
  • [ISSUE-3852] - [ISSUE-3852] - Move the Logappender module to external
  • [ISSUE-3836] - [ISSUE-3836] - depreciated unused class
  • [ISSUE-3797] - [ISSUE-3797] - Improve DefaultMQProducerImpl code
  • [ISSUE-3789] - [ISSUE-3789] - optimize: Tag the name of consuming thread whith consumeGroup.
  • [ISSUE-3773] - [ISSUE-3773] - Adding exception message with broker addr when occuring broker connect timeout
  • [ISSUE-3720] - [ISSUE-3720] - perf: avoid multiple expansion when the number of elements in the MessageConst class is determined
  • [ISSUE-3696] - [ISSUE-3696] - Optimize the query consumer connection display
  • [ISSUE-3684] - [ISSUE-3684] - change client jdk version to 1.6
  • [ISSUE-3539] - [ISSUE-3539] - Add parameter verification
  • [ISSUE-3651] - [ISSUE-3651] - for add netty channel option WRITE_BUFFER_WATER_MARK
  • [ISSUE-3642] - [ISSUE-3642] - Display GID and Topic with namespace
  • [ISSUE-3644] - [ISSUE-3644] - exchange parameters
  • [ISSUE-3645] - [ISSUE-3645] - Remove TBW102 topic not found warn log in rocketmq-clie…
  • [ISSUE-3622] - [ISSUE-3622] - bump up log4j-slf4j-impl version to 2.15.0
  • [ISSUE-3604] - [ISSUE-3604] - Some important interface methods add comment
  • [ISSUE-3587] - [ISSUE-3587] - Unnecessary boxing of primitives
  • [ISSUE-3593] - [ISSUE-3593] - entrySet() replace keySet()
  • [ISSUE-3564] - [ISSUE-3564] - Enclose namesrvAddr in example of mqadmin tool by quotation marks
  • [ISSUE-3565] - [ISSUE-3565] - Removing message filter impldev
  • [ISSUE-3558] - [ISSUE-3558] - Clear spelling errors in comments in quickstart
  • [ISSUE-3560] - [ISSUE-3560] - remove deprecated status in the orderly consumer examples.
  • [ISSUE-3467] - [ISSUE-3467] - Fail fast on loading files with error mappedFileSize
  • [ISSUE-3424] - [ISSUE-3424] - Validators.checkMessage() is used twice.
  • [ISSUE-3370] - [ISSUE-3370] - group same Exceptions
  • [ISSUE-3286] - [ISSUE-3286] - replace Timer with ScheduledExecutorService
  • [ISSUE-3048] - [ISSUE-3048] - add example of OnewayProducer and ScheduledMessage
  • [ISSUE-3015] - [ISSUE-3015] - when slaveAckOffset greater than local commitLog offset, break …
  • [ISSUE-2969] - [ISSUE-2969] - Add a skip accumulation message command in mqadmin.
  • [ISSUE-2580] - [ISSUE-2580] - Check producerTable or consumerTable is empty when updateTopicRouteInfoFromNameServer

Bug

  • [ISSUE-3860] - [ISSUE-3860] - fix wrong use of scheduleAtFixedRate in client code
  • [ISSUE-3551] - [ISSUE-3551] - Fix admin cloneoffset
  • [ISSUE-3527] - [ISSUE-3527] - Fix some request header setting errors and naming issues
  • [ISSUE-2516] - [ISSUE-2516] - Fix the value of sendThreadPoolQueueHeadWaitTimeMills is 0 most of the time
  • [ISSUE-3579] - [ISSUE-3579] - Fix spelling mistake in getter/setter method of mQClientFactory
  • [PR-3603] - [PR-3603] Fix spelling error in DefaultMessageStore
  • [ISSUE-3666] - [ISSUE-3666] - fix CI error in RIP-28 at getmQClientFactory
  • [ISSUE-3666] - [ISSUE-3666] - fix build error in RIP-28 at getmQclientFactory
  • [ISSUE-3687] - [ISSUE-3687] - Fix wrong method comment about transaction message.
  • [ISSUE-3685] - [ISSUE-3685] - Fix param spelling error
  • [ISSUE-3630] - [ISSUE-3630] - Fix the bug that the broker will hang after polish the headWaitTimeMills method
  • [ISSUE-3601] - [ISSUE-3601] - Fix dledger put batch msg stats bug
  • [ISSUE-2706] - [ISSUE-2706] - Fix the problem of returning SEND_OK after flush failed
  • [ISSUE-3394] - [ISSUE-3394] - fix duplicate keys in trace message
  • [ISSUE-3476] - [ISSUE-3476] - Fix last separator of properties string is missing when using batch send
  • [ISSUE-3430] - [ISSUE-3430] - fix the problem that setting parameter mqClientApiTimeout doesn't take effect
  • [ISSUE-951] - [ISSUE-951] - Fixed an incorrect offset problem in the ResetOffsetByTimeCommand
  • [ISSUE-3603] - [ISSUE-3603] - Fix(client): fetch and commit offset need to use master broker firstly
  • [ISSUE-3613] - [ISSUE-3613] - bug fix, solve message hash conflict in index file
  • [ISSUE-3786] - [ISSUE-3786] - fix: The length of properties value should be checked before converting them to short.
  • [ISSUE-3556] - [ISSUE-3556] - Fix:When broker is down, rocketmq client can not retry under Async send model
  • [ISSUE-3453] - [ISSUE-3453] - Producer cannot shutdown completely