As RocketMQ has evolved over more than a decade, it has served a great number of Alibaba Cloud customers. We are grateful to all of you who have provided feedback and suggestions, helping to promote the development of RocketMQ.
Keywords: Resource isolation optimization (instance support) | Resource application process optimization | HTTP opening and support for multi-language clients | Migration of RAM authorization policies
Resource isolation optimization (instance support)
RocketMQ provides instances for multi-tenancy isolation. Each user can purchase multiple instances in the same region and isolate the instances from each other logically or physically.
RocketMQ provides the following two types of instances:
- Standard Edition: Instances are isolated logically. A maximum of eight instances can be created in a region.
- Enterprise Platinum Edition: Instances are isolated physically. The number of instances that can be created in a region is not limited. For more information, see RocketMQ Enterprise Platinum Edition.
To be compatible with existing resources of existing users, RocketMQ instances provide the following two types of namespaces:
Default instances (compatible with the existing resources of old users):
- This type of instance has no separate namespace. The resource name must be globally unique both inside and outside the instance.
- By default, an instance with no namespace is automatically generated for the existing resources of old users of RocketMQ in the region where the resources reside.
You can configure the endpoint, which can be obtained on the Instances page in the RocketMQ console, as follows:
// Recommended configuration:
// Compatible configuration (not recommended. We recommend that you upgrade this configuration to the recommended configuration):
- New instances:
- Such an instance has a separate namespace. The resource name must be unique inside the instance, but can be the same as those inside other instances.
- You can configure the endpoint, which can be obtained on the Instances page in the RocketMQ console, as follows:
- ons-client must be upgraded to the latest version, which is 1.8.0. Final for Java SDK, 1.1.2 for C++ SDK, and 1.1.3 for .NET SDK.
// Recommended configuration:
Resource application process optimization
Previously, RocketMQ had three types of resources: topic, producer ID, and consumer ID. Each two of the three resources are in N:N mapping, which was hard to grasp. Each time a topic was created, the topic had to be associated with a producer ID and a consumer ID. The process was too complex for medium- and large-sized enterprise customers.
To optimize the user experience and reduce access threshold for new users, the resource access application process has been simplified.
The resource application process has been optimized in the following two aspects:
- Topic management (unchanged):
- You need to apply for a topic. Topic is the first-level identifier for classifying messages.
- Group management:
- You no longer need to apply for a producer ID. Producer IDs and Consumer IDs are integrated into group IDs. In the RocketMQ console, the producers module has been removed. The producers and consumers modules have been integrated into the groups module.
- You do not need to associate the applied producer ID or consumer ID with a topic anymore. Instead, you only need to apply for a group ID and associate it with a topic directly in the code.
- The original list of producer IDs is not displayed, which does not affect the current service.
- The consumer IDs started with “CID-“ or “CID_” that you have applied for can still be used and can be set in the code
- Topic management (unchanged):
1. We recommend that you upgrade the ons-client to the latest version, which is 1.8.0. Final for Java SDK, 1.1.2 for C++ SDK, and 1.1.3 for .NET SDK.
2. Existing producer IDs or consumer IDs can still be used and the current service is not affected. However, we recommend that you upgrade your instance configuration to the recommended configuration.
Recommended configuration: Integrate producer ID and consumer ID into group ID.
// Set the PropertyKeyConst.GROUP_ID. The original PropertyKeyConst.ProducerId and PropertyKeyConst.ConsumerId are deprecated.
properties.put(PropertyKeyConst.GROUP_ID, "the original CID-XXX or GID-XXX");
Compatible configuration: Use the producer ID to identify a producer and consumer ID to identify a consumer.
// When a producer is created, you need to configure PropertyKeyConst.ProducerId.
properties.put(PropertyKeyConst.ProducerId, "original PID-XXX or GID-XXX");
// When a consumer is created, you need to configure PropertyKeyConst.ConsumerId.
properties.put(PropertyKeyConst.ConsumerId, "original CID-XXX or GID-XXX");
HTTP opening and support for multi-language clientsRocketMQ supports HTTP and RESTful, making it easy to use, fast to access, and powerful in cross-network access. Additionally, it supports clients developed in seven programming languages. For more information, see SDK guide (HTTP).
- Currently, advanced feature messages are not supported, including ordered messages, transactional messages, and scheduled messages.
- Currently, message trace query is not supported.
- The group ID of TCP-based instances cannot be used for HTTP-based instances and vice versa. You need to create a group ID for TCP-based instances and HTTP-based instances separately.
Note: Currently, HTTP and multi-language clients are supported only in China (Hangzhou). HTTP and multi-language clients will soon be supported in other regions.
Migration of RAM authorization policiesBased on the unified management requirements of Alibaba Cloud RAM, the primary-sub-account authorization function of RocketMQ will be stopped on April 2, 2019. Please migrate the permission configurations of your accounts as soon as possible.
- We recommend that you configure RAM policies as soon as possible. For more information, see Grant permissions to sub-accounts.
- Resources that have been authorized are not affected and the service can still be used. However, we recommend that you go to the RAM console for configuration and management.