[整理]阿里云之消息队列的使用

环境准备

1.申请阿里云账号,开通消息队列服务,申请accessKey。

2.SDK导入,Topic、发布和订阅申请

发布端代码

 

工具类:

 

 
  1. import com.aliyun.openservices.ons.api.*;

  2.  
  3. import java.util.Properties;

  4.  
  5. /**

  6. * Created by Youme on 2016/6/20.

  7. */

  8. public class CloudMQUtil {

  9.  
  10. private static final String ACCESS_KEY = "XXXXXXXXX"; //你自己的AccessKey

  11. private static final String SECRET_KEY = "XXXXXXXXX"; //你自己的SecretKey

  12.  
  13. /**

  14. * 获取消息的 Producer

  15. *

  16. * @param producerId producerId

  17. * @return Producer

  18. */

  19. public static Producer getProducer(String producerId) {

  20. Properties properties = new Properties();

  21. properties.put(PropertyKeyConst.ProducerId, producerId);

  22. properties.put(PropertyKeyConst.AccessKey, ACCESS_KEY);

  23. properties.put(PropertyKeyConst.SecretKey, SECRET_KEY);

  24. Producer producer = ONSFactory.createProducer(properties);

  25.  
  26. // 在发送消息前,必须调用start方法来启动Producer,只需调用一次即可。

  27. producer.start();

  28. return producer;

  29. }

  30. }

调用:

 
  1. Producer producer = CloudMQUtil.getProducer("XXXXXXX"); //你申请的producerId

  2. Message msg = new Message("XXXXXXX", //你申请的TopicName

  3. "tag_003", "key_003", "这是消息".getBytes());

  4. producer.send(msg);

 

订阅端代码

MessageListenser实现类:

 

 
  1. import com.aliyun.openservices.ons.api.Action;

  2. import com.aliyun.openservices.ons.api.ConsumeContext;

  3. import com.aliyun.openservices.ons.api.Message;

  4. import com.aliyun.openservices.ons.api.MessageListener;

  5.  
  6. import java.util.Date;

  7.  
  8. /**

  9. * Created by Youme on 2016/6/20.

  10. */

  11. public class MyMessageListener implements MessageListener {

  12. @Override

  13. public Action consume(Message message, ConsumeContext consumeContext) {

  14. System.out.println("Receive @" + new Date() + ": " + message);

  15.  
  16. String body = new String(message.getBody());

  17. System.out.println("msgBody is : " + body);

  18. return Action.CommitMessage;

  19. }

  20. }

订阅器:

 

 

 
  1. import com.aliyun.openservices.ons.api.Consumer;

  2. import com.aliyun.openservices.ons.api.ONSFactory;

  3. import com.aliyun.openservices.ons.api.PropertyKeyConst;

  4.  
  5. import java.util.Date;

  6. import java.util.Properties;

  7.  
  8. /**

  9. * Created by Youme on 2016/6/20.

  10. */

  11. public class MyMessageConsumer {

  12. private static final String ACCESS_KEY = "XXXXXXXX"; //你自己的AccessKey

  13. private static final String SECRET_KEY = "XXXXXXXX"; //你自己的AccessKey

  14. private static final String TOPIC_NAME = "XXXXXXXX"; //你申请的TopicName

  15. private static final String CONSUMER_ID = "XXXXXXXX"; //你申请的ConsumerId

  16.  
  17. /**

  18. * 订阅消息

  19. */

  20. public void subscribe() {

  21. Properties properties = new Properties();

  22. properties.put(PropertyKeyConst.ConsumerId, CONSUMER_ID);

  23. properties.put(PropertyKeyConst.AccessKey, ACCESS_KEY);

  24. properties.put(PropertyKeyConst.SecretKey, SECRET_KEY);

  25. Consumer consumer = ONSFactory.createConsumer(properties);

  26. consumer.subscribe(TOPIC_NAME, "*", new PointMessageListener());

  27. consumer.start();

  28. System.out.println(CONSUMER_ID + " is running @" + new Date());

  29. }

  30. }

调用:

 new MyMessageConsumer().subscribe(); // 系统启动的时候启动订阅
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值