消息队列RocketMQ版于2021年10月18日发布新版本Java SDK和C++ SDK客户端,本次发布对客户端大版本进行了升级。本文介绍发布的SDK版本信息、支持升级的地域以及主要的功能差异。

SDK版本信息

本次发布的SDK客户端版本信息如下:
协议语言版本号
TCP协议JavaV2.x.x.Final
C++V3.x.x

使用限制

地域限制

  • Java SDK V2.x.x.Final支持如下地域:华东1(杭州)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华南1(深圳)、西南1(成都)、德国(法兰克福)和印度尼西亚(雅加达)。
    重要 其他不支持地域请勿将Java SDK升级到V2.x.x.Final版本,否则将无法访问消息队列RocketMQ版服务。
  • C++ SDK V3.x.x版本支持地域:所有地域均支持。

网络限制

  • Java SDK V2.x.x.Final:仅支持通过VPC网络访问消息队列RocketMQ版,不支持经典网络访问。
    重要 若您使用存量消息队列RocketMQ版实例并通过经典网络访问,请勿将Java SDK升级到V2.x.x.Final版本,否则将无法访问消息队列RocketMQ版实例。
  • C++ SDK V3.x.x:无网络限制。

功能差异

升级SDK大版本后,主要的功能差异如下:

主要功能变更客户端版本

Java SDK:V1.x.x.Final

C++ SDK:V2.x.x/V1.x.x

客户端版本

Java SDK:V2.x.x.Final

C++ SDK:V3.x.x

负载均衡策略

队列级消息负载均衡策略。

该策略可能会出现以下问题:
  • 消费者数量比和Queue数量多时,部分消费者获取不到消息的现象。
  • 部分消费者异常或者处理缓慢,其他消费者空闲却无法共同分担堆积压力的情况。

以消息为粒度进行负载,负载策略更加均衡。

避免了队列级负载策略可能引起的消费者空闲或消息堆积问题。

仪表盘只有消息收发量和堆积量等少数指标项。
  • 新增了消息堆积场景的指标数据,帮助您更高效定位问题。
  • 增加了消息收发各环节的耗时、成功率等指标。
新增指标如下:
  • 生产者
    • 消息生产调用耗时:统计Topic生产消息时的耗时。
    • 消息生产调用成功率 :统计Topic消息生产的成功率。
  • 消费者
    • 平均消费成功率:统计指定实例下所有消息的消费成功率。
    • 处理中消息量:统计在消费者客户端正在处理但客户端还未返回消费成功响应的消息的数量。
    • 已就绪消息量:统计在消息队列RocketMQ版服务端已就绪,可以被消费者消费的消息数量。指标反映还未被消费者开始处理的消息规模。
    • 已就绪消息排队时间:统计最早一条就绪消息的就绪时间和当前时间差。该指标反映了还未被处理的消息的延迟时间大小,对于时间敏感的业务来说是非常重要的度量指标。
    • 消息消费处理耗时:统计Group消费消息时,消息从开始被消费到消费完成的处理耗时。
    • 消费者本地等待耗时:统计Group消费消息时,消息到达消费者客户端到开始被消费的耗时。
    • 消费客户端访问协议占比:统计所有被消费的消息各协议类型消息量的占比。
  • 实例 Top 20概览
    • 已就绪消息排队时间 top20 GroupIDs:统计已就绪消息排队时间最长的前20个Group。
    • 堆积消息量(已就绪消息+处理中消息)top20 GroupIDs:统计堆积的消息量最多的前20个Group。
    • 处理中消息量 top20 GroupIDs:统计处理中的消息量最多的前20个Group。
    • 消费处理耗时 top20 GroupIDs:统计消费处理耗时最长的前20个Group。
    • 在消费者本地等待处理耗时 top20 GroupIDs:统计消费者本地等待耗时最长的前20个Group。
    • 消息生产调用失败率 top20 Topics:统计生产消息时失败率最高的前20个Topic。
    • 消息消费失败率 top20 GroupIDs:统计消费消息时失败率最高的前20个Group。
消息轨迹缺少非普通消息的轨迹数据和消费堆积场景的相关数据。
  • 增加了消息消费环节的轨迹数据,可根据异常、失败及耗时等条件查询消息轨迹。
  • 增加了定时、事务等消息场景的数据。
  • OpenTelemetry标准,可关联到整个调用链路。
新增轨迹参数如下:
参数说明
AccessKey您的阿里云账号或RAM用户的AccessKey ID,用于标识用户。当您通过SDK或API调用消息队列RocketMQ版资源时,需要使用AccessKey ID进行身份验证。
到达Server消息到达消息队列RocketMQ版服务端的时间。
预设DeliverAt定时消息的预计投递时间。
实际AvailableAt定时消息定时结束的时间。即消息可被消费者消费的开始时间。
Available Time消息可被消费者消费的开始时间。
提交/回滚时间事务消息提交或回滚的时间。
到达消费端消息到达消费者客户端的时间。
等待处理耗时消息到达消费者客户端,等待线程池分配线程和分配处理资源的耗时。