腾讯云消息队列 CMQ 目前支持 Java、Python、PHP 及 C++ SDK ,后续会支持更多语言。欢迎广大开发者根据 API 说明开发更多语言版本的 SDK。
由于分配资源和释放资源需要1s左右的时间,当前消息队列 SDK 在创建及删除队列/主题时会有1s 延迟,建议在程序中增加创建和删除的时间间隔保障调用成功。
注意:
endpoint=http://cmq-topic-gz.api.qcloud.com
该接入方式为 HTTP 协议访问广州主题公网域名,修改为:endpoint=https://cmq-topic-gz.api.qcloud.com
。不同语言版本 SDK 的 GitHub 地址如下:
使用 SDK 前至少要获取 SecretId、 SecretKey 和 endpoint(即请求发到哪个地域,走内网还是外网)。endpoint 说明如下。
请参照下面说明将域名中的 {$region} 替换成相应地域:
https://cmq-queue-{$region}.api.qcloud.com
http://cmq-queue-{$region}.api.tencentyun.com
请参照下面说明将域名中的 {$region} 替换成相应地域:
https://cmq-topic-{$region}.api.qcloud.com
http://cmq-topic-{$region}.api.tencentyun.com
http://cmq-queue-bj.api.tencentyun.com
。原因如下:{$region}需用具体地域替换:gz(广州),sh(上海),bj(北京),shjr(上海金融),szjr(深圳金融),hk(中国香港),cd(成都),ca(北美),usw(美西),sg(新加坡)。公共参数中的 region 值要与域名的 region 值保持一致,如果出现不一致的情况,以域名的 region 值为准,将请求发往域名 region 所指定的地域。
/src/main/java/com/qcloud/cmq/example
文件夹下。String secretId="获取的SecretID";
String secretKey="获取的SecretKey";
String endpoint = "https://cmq-topic-{$region}.api.qcloud.com";
String queueName = "test";
选择“新建队列”和“使用已有队列”://创建新队列并设置属性
QueueMeta meta = new QueueMeta();
meta.pollingWaitSeconds = 10;
meta.visibilityTimeout = 10;
meta.maxMsgSize = 1048576;
meta.msgRetentionSeconds = 345600;
Queue queue = account.createQueue(queueName,meta);
//使用控制台已有队列
Queue queue = account.getQueue(queueName);
本 Demo 使用的是当前账号已有队列,如需选择新建队列,修改 queueName 为将要创建的队列名,然后找到新建队列相关代码取消注释。先运行 Producer 类发送消息,再运行 Consumer 类接受消息。
发送消息代码示例:
String msg = "hello!";
String msgId = queue.sendMessage(msg);
System.out.println("==> send success! msg_id:" + msgId);
接收消息代码示例:
Message msg = queue.receiveMessage(10);
运行 TopicDemo 类,主题模型请求域名参考 主题模型请求域名。
发布消息示例:
String msg = "hello!";
String msgId = topic.publishMessage(msg);
处理消息示例:
String queueName = "test";
String subscriptionName = "sub-test";
String Endpoint = queueName;
String Protocol = "queue";
account.createSubscribe(topicName,subscriptionName, Endpoint, Protocol);
创建订阅者时填写一个队列,用队列处理消息。
本页内容是否解决了您的问题?