MQ的入门指南

版权声明:知识本无差别,何必在意你我? https://blog.csdn.net/qq_33774822/article/details/70458363

消息队列(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,因为是公司的相关信息,就不贴出来了。

猜你喜欢

转载自blog.csdn.net/qq_33774822/article/details/70458363
MQ