CMQ currently allows SDK calls based on the TCP protocol for sending and receiving general messages, transaction messages, delayed messages, and async messages. Among them, transaction messages can only be implemented through TCP.
The TCP protocol currently supports public network access and private network access from a CVM instance in a VPC in the same region as the CMQ instance, but does not support the private network access over the classic network.
This document describes how to use the SDK for TCP and install, download, configure, and run the demo to help you quickly build CMQ test projects.
TCP Protocol Advantages
Fewer computing resources
HTTP authenticates requests and requires a signature for each request, while TCP authenticates links; therefore, it is sufficient to authenticate a link during its establishment, which saves client computing resources.
Safer client threads
The TCP client is thread-safe, and multiple threads can use the same link, which saves link resources.
Higher transfer efficiency
TCP increases the proportion of valid data during transfer. For the same client, it has higher throughput and QPS and greater transfer efficiency than HTTP.
Better user experience
TCP supports async APIs and callbacks.
More features
TCP supports the latest CMQ feature of distributed message transaction.
Demo Usage
Preparing demo environment
1. Install IDE
You can install IntelliJ IDEA or Eclipse. This document uses IntelliJ IDEA as an example.
Please download IntelliJ IDEA Ultimate and install it accordingly. 2. Download the demo
Please download the CMQ demo to your local system and decompress it. You will see the cmq-java-tcp-sdk-master
folder then. Configuring demo
1. Create a resource
You need to create the required CMQ resource in the console and get the CMQ queue name, SecretID
, and SecretKey
.
For detailed directions, please see Queue Model and Topic Model. 2. Import demo files
Open the folder on the startup page of IDEA.
After the folder is opened, the file hierarchy is as follows, and the demo files are stored in the demo
folder.
3. Configure demo parameters
Modify the file NameServer address, key pair, and queue name. For the NameServer address, please see the NameServer Table.
Taking ProducerDemo as an example, the configuration is as follows: producer.setNameServerAddress("Corresponding NameServer");
producer.setSecretID("Obtained SecretID")
producer.setSecretKey("Obtained SecretKey")
String queue = "Name of the created queue"
The details are as follows:
Running demo
Sending and receiving messages with queue model
2. After the ProducerDemo
file is successfully executed, the log will be displayed as follows:
ProducerDemo supports sending general messages, delayed messages, and async messages.
3. Execute the ConsumerDemo
file to receive messages.
Sending and receiving messages with topic model
1. Run the PublishDemo
class to send messages with the topic model.
2. Run the SubscriberDemo
class to receive messages with the topic model.
Sending and receiving transaction messages
1. Run the ProducerTransactionDemo
class to send transaction messages.
2. Run the SubscriberTransactionDemo
class to receive transaction messages.
NameServer Table
|
| http://cmq-nameserver-in.tencentcloudapi.com | http://cmq-nameserver-vpc-in.api.tencentyun.com |
| http://cmq-nameserver-bj.tencentcloudapi.com | http://cmq-nameserver-vpc-bj.api.tencentyun.com |
| http://cmq-nameserver-sh.tencentcloudapi.com | http://cmq-nameserver-vpc-sh.api.tencentyun.com |
| http://cmq-nameserver-gz.tencentcloudapi.com | http://cmq-nameserver-vpc-gz.api.tencentyun.com |
| http://cmq-nameserver-ca.tencentcloudapi.com | http://cmq-nameserver-vpc-ca.api.tencentyun.com |
| http://cmq-nameserver-cd.tencentcloudapi.com | http://cmq-nameserver-vpc-cd.api.tencentyun.com |
| http://cmq-nameserver-cq.tencentcloudapi.com | http://cmq-nameserver-vpc-cq.api.tencentyun.com |
| http://cmq-nameserver-hk.tencentcloudapi.com | http://cmq-nameserver-vpc-hk.api.tencentyun.com |
| http://cmq-nameserver-kr.tencentcloudapi.com | http://cmq-nameserver-vpc-kr.api.tencentyun.com |
| http://cmq-nameserver-sg.tencentcloudapi.com | http://cmq-nameserver-vpc-sg.api.tencentyun.com |
| http://cmq-nameserver-th.tencentcloudapi.com | http://cmq-nameserver-vpc-th.api.tencentyun.com |
| http://cmq-nameserver-use.tencentcloudapi.com | http://cmq-nameserver-vpc-use.api.tencentyun.com |
| http://cmq-nameserver-usw.tencentcloudapi.com | http://cmq-nameserver-vpc-usw.api.tencentyun.com |
Was this page helpful?