On January 23, 2019, resource isolation, resource application, TCP and HTTP support, and permission management of Message Queue for Apache RocketMQ were optimized. This topic describes updates to facilitate your use of Message Queue for Apache RocketMQ.

Note To be compatible with the new and old resource configurations, we recommend that you upgrade your ons-client to the latest version.

Optimization of resource isolation (instance support)

Message Queue for Apache 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.

Message Queue for Apache 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 Message Queue for Apache RocketMQ Enterprise Platinum Edition.

To be compatible with existing resources of existing users, Message Queue for Apache RocketMQ instances provide the following two types of namespaces:

  • Default instances, which are compatible with the existing resources of existing users:
    • This type of instance has no separate namespace. The resource name must be globally unique both inside and outside the instance.
    • For existing Message Queue for Apache RocketMQ users, a default instance with no separate namespace is automatically generated in the region where the existing resources are located.
    • You can configure the endpoint, which can be obtained on the Instances page in the Message Queue for Apache RocketMQ console, as follows:
          // Recommended configuration:
          properties.put(PropertyKeyConst.NAMESRV_ADDR, "xxxx");
          // Compatible configuration (not recommended. We recommend that you upgrade this configuration to the recommended configuration):
          properties.put(PropertyKeyConst.ONSAddr, "xxxx");                  
  • New instances:
    • A new instance has a separate namespace. The resource name must be unique within the instance, but can be the same as those in other instances.
    • You can configure the endpoint, which can be obtained on the Instances page in the Message Queue for Apache RocketMQ console, as follows:
      // Recommended configuration:
      properties.put(PropertyKeyConst.NAMESRV_ADDR, "xxx");                            
    • The ons-client must be upgraded to the following latest versions for different languages:

Optimization of resource application process

The original Message Queue for Apache RocketMQ has three types of resources:

  • Topic
  • Producer ID
  • Consumer ID

Each two of the three resources are in N:N mapping. Each time a topic is created, it must be associated with a producer ID and a consumer ID. The process is too complex for medium- and large-sized enterprise customers.

To optimize the user experience and reduce the access threshold for new users, the resource 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 Message Queue for Apache RocketMQ console, the producer module has been removed. The producer and consumer 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.
      • Compatibility:
        • The original list of producer IDs is not displayed, which does not affect the current service.
        • The consumer IDs starting with "CID-" or "CID_" that you have applied for can still be used and can be set in the PropertyKeyConst.ConsumerId or PropertyKeyConst.GROUP_ID parameter of the code.
  • 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 the consumer ID to identify a consumer.
          // When a producer is created, you need to configure PropertyKeyConst.ProducerId.
          properties.put(PropertyKeyConst.ProducerId, "the original PID-XXX or GID-XXX");
          // When a consumer is created, you need to configure PropertyKeyConst.ConsumerId.
          properties.put(PropertyKeyConst.ConsumerId, "the original CID-XXX or GID-XXX");            

Message Queue for Apache RocketMQ Standard Edition 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).

Migration of RAM authorization policies

Based on the unified management requirements of Alibaba Cloud RAM, the Alibaba Cloud account and RAM user authorization function of Message Queue for Apache RocketMQ will be stopped on April 2, 2019. 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 RAM users.
  • 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.