RocketMQ升级日志
1 4.2.0 原版Release Note
1.1 New Feature
1.2 Improvement
- 异常时使用logger替代e.printStackTrace()
- 在MappedFileQueue#flush成功时返回true
- 重命名临时变量
- 基准测试脚本被移动到分布式模块?
- 在解码远程调用的header时减少反射调用
- 减少OpenMessaging模块单元测试的开销
- 优化consumerThreadMax比consumerThreadMin小的情况下产生的异常信息
- 简化代码
- 在启动broker时增加commitLog与consumeQueue数据的一致性检查
- 增加避免重复启动broker的检查
- 修改java8的JVM参数和及调整和直接内存GC相关的参数
- 增加nameserver的套接字buffer以提升broker注册速度
- 为broker的pull-request队列增加快速失败机制(类似发送时的流控)
- QueryMessageProcessor使用独立线程池(之前与PullMessageProcessor共用)
- 强化TLS设置
- 将发信号的时机调整为异步请求回调结束后
- 暴露一个接口使客户端可以指定异步回调的执行器
- 增加一个接口来支持解码加密过的私钥文件
1.3 Bug
- 修复PullConsumer中pull result size设置的问题
- 批量场景处理返回时broker会错误地返回两次
- 确保ScheduledExecutorService的周期性任务能够正确捕捉异常
- 客户端不能正常周期性访问namesrv的问题
- 修复LoggerAppender单元测试随机失败以及耗时过多的问题
- 修复IndexService中错误使用读写锁的问题
- 确保slave机器能够在master机器清理了commitLog的情况下正常启动
- 修复主机名在/etc/hosts中不存在时执行MixAll#localhost的异常
- 确保sql filter不会和老的tag filter冲突
- 修复文件测试中创建软连接的错误
- 修复mqadmin printmsg调用System.out.printf可能抛出的UnknownFormatConversionException
- 修复参数错误可能导致主程序退出的问题
- 确保消费队列落后时(consume queue dispatch behind)的退出不会导致消息丢失
- 确保不会删除中间的map file
2 4.3.0 原版Release Note
2.1 New Feature
2.2 Improvement
- 优化当master挂掉只有slave工作的时候的消费性能
- 增加namesrv的套接字buffer以更好的适应网络带宽(亦见于4.2.0)
- 为broker的pull-request队列增加快速失败机制(类似发送时的流控)(亦见于4.2.0)
- 强化TLS设置(亦见于4.2.0)
- 心跳处理使用专门的线程池
- 暴露一个接口使客户端可以指定异步回调的执行器(亦见于4.2.0)
- 提升broker注册的性能,减少内存占用
- 在mqadmin tools中增加发送、消费消息命令
- 重构日志组件,支持log4j/log4j2/logback
2.3 Bug
- 修复消息体在重发的场景下被多次压缩的问题
- 修复StoreStatsService中的并发问题,提升统计准确性
- pull message service在调度新的pull请求前丢失状态确认?
- 修复WaitNotifyObject#waitingThreadTable中的内存泄露
- 修复当消息处理超时时消息队列大小的同步状态不正确的问题
- 修复RMQAsyncSendProducer单元测试中的并发性问题
- 将发信号的时机调整为异步请求回调结束后(亦见于4.2.0)
- 修复MappedFileQueue#findMappedFileByOffset的并发性问题
- 修复mqadmin中调用System.out.printf使用的错误格式
- 异步调用并不是完全异步,过程中的一些异常可能导致用户线程一些奇怪的退出
3 4.3.1 原版Release Note
3.1 New Feature
None
3.2 Improvement
- 提升事务消息接口的兼容性,默认主题修改为"TBW102",确保服务端对老的客户端向后兼容
- 强化事务消息的是一些实现,增加admin tool,为EndTransactionProcessor增加独立线程池
- 清理mqfiltersrv的关联脚本
3.3 Bug
4 4.3.2 原版Release Note
4.1 New Feature
None
4.2 Improvement
4.3 Bug
- 修复使用admintool获取storehost时的NPE
- 修复执行"mvn clean install"是无法执行集成测试的问题
- 修复mqadmin中ConsumeMessageCommand -g未正常工作的问题
- 修复ExecuteLocalTransaction方法未生效的问题
- 修复某些版本服务器上testGetLocalInetAddress失败的问题
5 4.4.0 原版Release Note
5.1 New Feature
5.2 Improvement
- 优化CountDownLatch的注释
- 升级fastjson至1.2.51
- 修复DB message默认大小
- 优化notice file
- 异步发送线程从共用回调的执行器改为独占
- 格式化admin tools输出的数字
- 优化travis-ci的配置文件
- 增加实例名以支持把trace消息发送到不同的集群
5.3 Bug
6 4.5.0 原版Release Note
6.1 New Feature
6.2 Improvement
6.3 Bug
- 修复defaultAsyncSenderExecutor在DefaultMQProducerImpl关闭的情况下未正常关闭的问题
- 修复PlainAccessValidator#parse()空指针的问题
7 4.5.1 原版Release Note
7.1 New Feature
7.2 Improvement
- 提供开发指引的中英文文档
- 增加单元测试用例
- 修改发布包版本命名格式修改为rocketmq-{version}
- producer/consumer中的一些admin接口被标记为Deprecate
- 优化默认消息链路追踪的配置
7.3 Bug
- 修复在acl没有打开的情况下仍然需要用户把tool.yml放在关联文件夹下才能正常使用mqadmin command的问题
- 修复同时打开aclEnable/enableDLegerCommitLog会导致broker报告异常的问题
- 修复当master挂掉并且集群tps处在较高水位时消费者不能从slave消费的问题
8 4.5.2 原版Release Note
8.1 New Feature
None
8.2 Improvement
- 修复一些说明文档
- 修复最佳实践中的一些拼写
- 增加ACL配置相关的mqadmin的接口
- 优化RMQ客户端三方依赖相关的代码
- 通过将超过最大检查次数的消息投递到系统主题以增强事务性
- 共享netty处理器来提升性能
- 为MQPullConsumerScheduleService增加定制RPCHook的构造方法
- ACL增加对范围ip的匹配
- 客户端中延迟生成log appender
- 修复HaConnection文件中的拼写
- 修复Java8环境下的Travis-CI
- 修复travis.yml
- 修复一些方法的拼写
- 修复文档排版
- 修复文档拼写
- 调整异常描述
- 更新concept.md
- 修复中文文档中的错误
- 修复某些系统中/dev/shm找不到的问题