您的位置:首页 > 其它

MQ的入门指南

2017-04-22 17:09 183 查看
消息队列(Message Queue,简称 MQ)是阿里巴巴集团中间件技术部自主研发的专业消息中间件。

也就是说他只是一个中间商,我们将消息提交到阿里云上面,然后由阿里云的MQ组件给我们将消息分发。

实现逻辑:

我们通过accessId,secretKey和mnsEndpoint来建立与阿里云的连接,然后将我们的数据上传到阿里云上,数据主要有两种方式:一个是订阅消息(Topic),一个是队列消息(Queue),然后由阿里云对我们的消息进行分发。

两种方式的区别:



功能实现:

1.检测提供信息是否正确,也就是输入相应的信息进行连接测试。

MNSMQConnection connection = new MNSMQConnection();
connection.setAccessId(“XXXXX”);
connection.setSecretKey("XXXXXX");
connection.setMnsEndpoint(''XXXXXX");
try {
connection.getQueue("12121");
// 测试成功才能添加或修改
return mqDao.save(MQConverter.convertP(mq));
} catch (Exception e) {
e.printStackTrace();
return ActionResult.fail(e.getMessage());
}


2.查看这个账户里面有多少个主题

CloudAccount cloudAccount = new CloudAccount("XXXXXXX","XXXXXXX", "XXXXXX");
MNSClient mnsClient = cloudAccount.getMNSClient();
PagingListResult<TopicMeta> topics = mnsClient.listTopic("", "", 100);
System.out.println("主题数量:"+topics.getResult().size());
for (TopicMeta topic : topics.getResult())
{ System.out.println(topic.getTopicName()); }

3.查看这个账户里面有多少队列
CloudAccount cloudAccount = new CloudAccount("XXXX","XXXX", "XXXXX");
MNSClient mnsClient = cloudAccount.getMNSClient();
PagingListResult<QueueMeta> queues = mnsClient.listQueue("", "", 100);
System.out.println("消息队列的数量:"+queues.getResult().size());
for (QueueMeta queue : queues.getResult()) {
System.out.println(queue.getQueueName());
}

4.查看队列里面的消息数量
CloudQueue cloudQueue = mnsClient.getQueueRef(queues.getResult().get(0).getQueueName());
if (cloudQueue != null) {
List<Message> messages = cloudQueue.batchPeekMessage(10);
if (messages != null) {
System.out.println("消息数");
}
}

最近由我写mq的控制台,所以写下来,上面的XXX是实例,真实的分别为accessId,secretKey,mnsEndpoint,因为是公司的相关信息,就不贴出来了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息