全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 阿里云办公 培训与认证 物联网
消息服务

Queue推送

更新时间:2017-06-07 13:26:11

用户使用已创建Queue作为Endpoint对Topic内容进行订阅;当有消息发布到Topic中时,Topic会通过内部数据通道,将Topic中的消息推送到各个订阅的Queue中。用户只需对订阅的Queue进行轮询拉取即可。

使用场景

  1. 订阅者无需保持在线状态;
  2. 订阅者机器部署在VPC环境;
  3. 订阅者需要通过高并发提高消费速度;

控制台订阅步骤

1. 创建主题Topic

image

2. 在同一地域创建队列Queue

image

3. 选中已创建的Topic,点击“订阅详情”进入订阅管理页面

image

4. 点击“创建订阅”,选择推送类型为“队列”,同时输入已创建的队列名(此处并不会对队列是否存在做检测,请确保相应的队列已经创建)

image

Java SDK订阅代码示例

client = new DefaultMNSClient(ServiceSettings.getMNSEndpoint(),
            ServiceSettings.getMNSAccessKeyId(),
            ServiceSettings.getMNSAccessKeySecret());

// 创建队列Queue
String queueName = "JavaSDKTestQueue";
String subName = "JavaTestSub"
QueueMeta queueMeta = new QueueMeta();
queueMeta.setQueueName(queueName);
CloudQueue queue = client.createQueue(queueMeta);
// 创建主题Topic
String topicName = "SampleTopic";
TopicMeta meta = new TopicMeta();
meta.setTopicName(topicName);
topic = client.createTopic(meta);
// 使用队列作为endpoint进行订阅
String queueEndpoint = topic.generateQueueEndpoint(queueName);
SubscriptionMeta subMeta = new SubscriptionMeta();
subMeta.setSubscriptionName(subName);
subMeta.setNotifyStrategy(SubscriptionMeta.NotifyStrategy.EXPONENTIAL_DECAY_RETRY);
subMeta.setEndpoint(queueEndpoint);
String subUrl = topic.subscribe(subMeta);
本文导读目录