rocketmq-4.0.0 和4.1.0 源码比对分析

来源:互联网 发布:vb.net 添加控件 编辑:程序博客网 时间:2024/05/22 16:52

从源码比对中可得知RocketMQ升级的过程及内情,话不多说 上结果

比对源码版本:rocketmq-rocketmq-4.0.0-incubating和 rocketmq-rocketmq-all-4.1.0-incubating


  • 修正部分拼写错误
  • ConcurrentHashMap 优化为 ConcurrentMap接口 大概是因为 ConcurrentHashMap也不是绝对的线程安全吧
  • ConsumerManager中consumerIdsChanged 改为 handle ,参数也有变化 此为重要变化
  • ClientManageProcessor增加checkClientConfig
  • PullMessageProcessor 、PullMessageProcessor、SendMessageProcessor 重写 processRequest
  • BrokerController registerProcessor 增加 SEND_BATCH_MESSAGE CHECK_CLIENT_CONFIG
  • BrokerStartup 中 commandLine 的 -p -m 参数判断下沉
  • MQPushConsumer 增加subscribe访问方式, DefaultMQPushConsumer 也同样继承
  • DefaultMQPullConsumerImpl、DefaultMQPushConsumerImpl增加并发控制 volatile synchronized 等
  • RebalancePushImpl增加了心跳机制 重新唤醒客户端
  • MQClientAPIImpl调整了retryBrokerName参数,增加 queryConsumeQueue和 checkClientInBroker api
  • MQProducer增加 Collection的send接口 DefaultMQProducer 也一并继承
  • LoggerName增加 RocketmqConsole RocketmqFilter两种log类型
  • FilterAPI.java 增加 build访问
  • 优化 MessageClientIDSetter 为24小时制
  • PullMessageRequestHeader增加 expressionType 表达式,Consumer可以用
  • RequestCode.java ResponseCode.java增加几种操作 类型 QUERY_CONSUME_QUEUE SEND_BATCH_MESSAGE CHECK_CLIENT_CONFIG、FILTER_DATA_NOT_EXIST FILTER_DATA_NOT_LATEST
  • BrokerConfig.java 增加对filter的一些处理
  • MixAll.java file2String使用 FileInputStream替代 FileReader ,貌似reader容易乱码
  • Consumer.java增加 f=filterType e=expression 参数
  • Producer.java增加p=prop参数
  • DynaCode.java里面 Arrays改用collection
  • FiltersrvStartup.java、NamesrvStartup.java addShutdownHook 改用 Thread Runnable/ShutdownHookThreadCallable
  • MessageStoreConfig.java增加 enableConsumeQueueExt 最大64M
  • Command 接口类均增加 SubCommandException

从以上可以看出 rocketmq也在不断地优化自己的服务,当然,这些东西也是大家很容易做到的,至于差异的作用,以及如何使用还需要继续分析。