This topic describes the SDK versions that ApsaraMQ for RocketMQ supports.
SDK versions
The following table describes the features that different ApsaraMQ for RocketMQ SDK versions support.
In the following table, ✅ indicates that the feature is supported, and ❌ indicates that the feature is not supported.
Item | ||||||
Protocol | gRPC protocol v2 | Remoting protocol | Remoting protocol | Remoting protocol | gRPC protocol v1 | HTTP protocol |
Accessible instances | 5.x series instances |
|
|
| 4.x series instances | 4.x series instances |
Recommendations | Use the 5.x gRPC SDK.
|
|
| |||
Send normal, ordered, transactional, and scheduled messages | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
Concurrent consumption | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Ordered consumption of messages | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Concurrency optimization for ordered consumption of messages | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Broadcasting consumption | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
Stream consumption (connecting to Flink, etc.) | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
Message trace | ✅ | ✅ | Supported in versions 4.5.2 and later | ✅ | ✅ | ❌ |
✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
✅ | Supported only for 5.x series instances | ❌ | ❌ | ❌ | ❌ | |
Batch sending | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
Limits
Different consumers in the same consumer group must use clients that support the same protocol.
When you perform a grayscale upgrade from a Remoting protocol SDK to a gRPC protocol SDK for the same consumer group, note the following:
Upgrades are not supported for consumer groups that deliver messages in order.
Consumer groups that deliver messages concurrently support smooth upgrades. A small number of messages may be duplicated during the upgrade.
To send messages to the same ordered topic, all producer clients must use the same protocol. The protocol must be either the Remoting protocol or the gRPC protocol.
For a consumer group that delivers messages in order, the consumer offset for ordered consumption of messages may be rolled back if the following steps are performed:
The consumer group for ordered messages first uses a Remoting protocol SDK.
The SDK is then upgraded to a gRPC protocol SDK.
The SDK is rolled back to the Remoting protocol SDK.
The RocketMQ ONS TCP 2.x SDK is available only in some regions. For more information, see Limits.
RocketMQ 5.x gRPC SDK
Protocol | Language | References |
gRPC protocol v2 | Java SDK | |
C# SDK | ||
Go SDK | ||
Python SDK | ||
C++ SDK |
RocketMQ 5.x Remoting SDK
Protocol | Language | References |
Remoting protocol | Java SDK |
RocketMQ 4.x/3.x SDK
Protocol | Language | References |
Remoting protocol | Java SDK | |
C++ SDK |
RocketMQ ONS TCP 1.x SDK
Protocol | Language | References |
Remoting protocol | Java SDK | |
C++ SDK | ||
.NET SDK |