重点技术-20170707-阿里云-消息服务MNS-生产与消费Demo

---------Maven依赖---------
<!-- 消息服务MNS -->
<dependency><groupId>com.aliyun.mns</groupId><artifactId>aliyun-sdk-mns</artifactId><version>1.1.8</version></dependency>

----------消息生产----------
CloudAccount account = new CloudAccount(S_AliyunAccount.AccessKeyId, S_AliyunAccount.AccessSecretKey,
S_AliyunAccount.MNSEndpoint);
MNSClient client = account.getMNSClient(); // 在程序中,CloudAccount以及MNSClient单例实现即可,多线程安全
try
{
CloudQueue queue = client.getQueueRef(S_AliyunAccount.QueueName);
Message message = new Message();
message.setMessageBody("I am test message");
Message putMsg = queue.putMessage(message);
System.out.println("Send message id is: " + putMsg.getMessageId());
}
catch (ClientException ce)
{
ce.printStackTrace();
}
catch (ServiceException se)
{
se.printStackTrace();
System.out.println("MNS exception requestId:" + se.getRequestId());
if (se.getErrorCode() != null)
{
if (se.getErrorCode().equals("QueueNotExist"))
{
System.out.println("Queue is not exist.Please create before use");
}
else if (se.getErrorCode().equals("TimeExpired"))
{
System.out.println("The request is time expired. Please check your local machine timeclock");
}
//更多错误码查询  https://help.aliyun.com/document_detail/mns/api_reference/error_code/error_code.html
}
}
catch (Exception e)
{
e.printStackTrace();
}
client.close(); // 程序退出时,需主动调用client的close方法进行资源释放

----------消息消费----------
CloudAccount account = new CloudAccount(S_AliyunAccount.AccessKeyId, S_AliyunAccount.AccessSecretKey,
S_AliyunAccount.MNSEndpoint);
MNSClient client = account.getMNSClient(); // 在程序中,CloudAccount以及MNSClient单例实现即可,多线程安全
try
{
CloudQueue queue = client.getQueueRef(S_AliyunAccount.QueueName);
Message popMsg = queue.popMessage();
if (popMsg != null)
{
System.out.println("message handle: " + popMsg.getReceiptHandle());
System.out.println("message body: " + popMsg.getMessageBodyAsString());
System.out.println("message id: " + popMsg.getMessageId());
System.out.println("message dequeue count:" + popMsg.getDequeueCount());
// 删除已经取出消费的消息
queue.deleteMessage(popMsg.getReceiptHandle());
System.out.println("delete message successfully.\n");
}
else
{
System.out.println("message not exist in TestQueue.\n");
}
}
catch (ClientException ce)
{
ce.printStackTrace();
}
catch (ServiceException se)
{
se.printStackTrace();
System.out.println("MNS exception requestId:" + se.getRequestId());
if (se.getErrorCode() != null)
{
if (se.getErrorCode().equals("QueueNotExist"))
{
System.out.println("Queue is not exist.Please create before use");
}
else if (se.getErrorCode().equals("TimeExpired"))
{
System.out.println("The request is time expired. Please check your local machine timeclock");
}
//更多错误码查询  https://help.aliyun.com/document_detail/mns/api_reference/error_code/error_code.html
}
}
catch (Exception e)
{
e.printStackTrace();
}
client.close();

猜你喜欢

转载自blog.csdn.net/namelessfighter/article/details/80547311