Before you call a TCP SDK to send and receive messages, you must create required resources in the Message Queue for Apache RocketMQ console. You must specify the resource parameters when you call the SDK.
Message Queue for Apache RocketMQ provides SDKs for multiple programming languages to send and subscribe to messages over TCP and HTTP. To use Message Queue for Apache RocketMQ, you must create an instance, a topic, and a group ID. Due to client differences, a group ID cannot be used for both TCP clients and HTTP clients. Therefore, you must create group IDs for TCP clients and HTTP clients separately.
Network access limits
When you use Message Queue for Apache RocketMQ, take note of the following network access limits:
- A topic can be accessed only by a producer or consumer with a group ID that is created on the same instance in the same region as the topic. For example, if a topic is created on instance A in the China (Hangzhou) region, the topic can be accessed only by a producer or consumer with a group ID that is created on instance A in the China (Hangzhou) region.
- If you use an on-premises server and need to access the Message Queue for Apache RocketMQ service over the Internet, you must create a topic and group ID on an instance in
the Internet region.
Producer and consumer clients can be deployed on an on-premises server or an ECS instance in any region. You must make sure that the on-premises server or ECS instance can access the Internet.
For more information about regions, see Regions and zones.
Create an instance
An instance is a virtual machine (VM) resource of Message Queue for Apache RocketMQ. An instance stores the topics and group IDs.
- Log on to the Message Queue for Apache RocketMQ console.
- In the left-side navigation pane, click Instances.
- In the top navigation bar, select a region, for example, China (Hangzhou).
- On the Instances page, click Create Instance.
- In the Create Message Queue for Apache RocketMQ Instance dialog box, select an Instance Type, enter an Instance Name and Description, and then click OK.
For information about the billing of Message Queue for Apache RocketMQ Standard Edition and Platinum Edition instances, see Billing overview.After the instance is created, it is displayed on the Instances page.
Create a topic
- A topic cannot be used across instances. For example, Topic A created in Instance A is unavailable in Instance B.
- Each topic name must be unique in an instance.
- We recommend that you create different topics to send different types of messages. For example, you can create Topic A for common messages, Topic B for transactional messages, and Topic C for scheduled and delayed messages.
- On the instance details page, click Topics in the left-side navigation pane.
- On the Topics page, click Create Topic.
- In the Create Topic dialog box, enter a name and Description, set the Message Type to Common Message, and then click OK.Note This topic uses common messages as an example. You can use the preceding procedure to create a topic that processes common messages. The topic you created cannot be used to send or receive other types of messages. Each topic can send and receive messages of a specified type. For more information, see Message types.The created topic is displayed in the topic list.
Create a group ID
- A group ID must be unique within an instance.
- Group IDs and topics implement N:N mapping. A consumer can subscribe to multiple topics and a topic can be subscribed to by multiple consumers. A producer can send messages to multiple topics and a topic can receive messages from multiple producers.
- On the Instance Details page, click Groups in the left-side navigation pane.
- In the Groups page, choose .
- In the Create Group ID dialog box, enter a Group ID and Description, and then click OK.The created group ID is displayed in the group ID list.
After creating resources in the console, you need to obtain the endpoint of the instance in the console. To access services in an instance or a region when sending or subscribing to messages, you need to configure the endpoints for the producer and consumer.
- On the Instance Details page, click Instance Details in the left-side navigation pane.
- In the TCP Client Endpoint section of the Instance Details page, move the pointer over the endpoint and click the endpoint. Then, the endpoint
is copied and available for subsequent use.Usage notes of the endpoints:
Note The HTTP endpoint and TCP endpoint of the same instance cannot be interchangeably used.
- The TCP client endpoint displayed in the console is the endpoint of a specific instance in a region. Different instances in the same region have different endpoints.
- Only the instances in the Internet region have public TCP endpoints. Instances in other regions only have private TCP endpoints.
- TCP endpoints cannot be used across regions. For more information, see Configure an internal TCP endpoint.
After completing the preceding preparations, you can run the sample code and use Message Queue for Apache RocketMQ to send and subscribe to messages.