美文网首页
rocketmq的使用要点

rocketmq的使用要点

作者: 欢乐时光欢乐你我 | 来源:发表于2019-05-04 17:07 被阅读0次

订阅方式

消息队列 RocketMQ 支持以下两种订阅方式:

不设置的情况下,默认为集群订阅方式

  • 集群订阅:
同一个 Group ID 所标识的所有 Consumer 平均分摊消费消息。 

例如 某个 Topic 有 9 条消息,一个 Group ID 有 3 个 Consumer 实例,那么在集群消费模式下每个实例平均分摊,只消费其中的 3 条消息。
 // 集群订阅方式设置(不设置的情况下,默认为集群订阅方式)
 properties.put(PropertyKeyConst.MessageModel, PropertyValueConst.CLUSTERING);
  • 广播订阅:
同一个 Group ID 所标识的所有 Consumer 都会各自消费某条消息一次。
例如 某个 Topic 有 9 条消息,一个 Group ID 有 3 个 Consumer 实例,那么在广播消费模式下每个实例都会各自消费 9 条消息。

  // 广播订阅方式设置
 properties.put(PropertyKeyConst.MessageModel, PropertyValueConst.BROADCASTING);

广播订阅方式 示例代码

import com.aliyun.openservices.ons.api.Action;
import com.aliyun.openservices.ons.api.ConsumeContext;
import com.aliyun.openservices.ons.api.Consumer;
import com.aliyun.openservices.ons.api.Message;
import com.aliyun.openservices.ons.api.MessageListener;
import com.aliyun.openservices.ons.api.ONSFactory;
import com.aliyun.openservices.ons.api.PropertyKeyConst;
import java.util.Properties;
public class ConsumerTest {
    public static void main(String[] args) {
        Properties properties = new Properties();
        // 您在控制台创建的 Group ID
        properties.put(PropertyKeyConst.GROUP_ID, "XXX");
        // AccessKey 阿里云身份验证,在阿里云服务器管理控制台创建
        properties.put(PropertyKeyConst.AccessKey, "XXX");
        // SecretKey 阿里云身份验证,在阿里云服务器管理控制台创建
        properties.put(PropertyKeyConst.SecretKey, "XXX");
        // 设置 TCP 接入域名,进入控制台的实例管理页面的“获取接入点信息”区域查看
        properties.put(PropertyKeyConst.NAMESRV_ADDR,"XXX");
          // 集群订阅方式 (默认)
          // properties.put(PropertyKeyConst.MessageModel, PropertyValueConst.CLUSTERING);
          // 广播订阅方式
          // properties.put(PropertyKeyConst.MessageModel, PropertyValueConst.BROADCASTING);
        Consumer consumer = ONSFactory.createConsumer(properties);
        consumer.subscribe("TopicTestMQ", "TagA||TagB", new MessageListener() { //订阅多个 Tag
            public Action consume(Message message, ConsumeContext context) {
                System.out.println("Receive: " + message);
                return Action.CommitMessage;
            }
        });
        //订阅另外一个 Topic
        consumer.subscribe("TopicTestMQ-Other", "*", new MessageListener() { //订阅全部 Tag
            public Action consume(Message message, ConsumeContext context) {
                System.out.println("Receive: " + message);
                return Action.CommitMessage;
            }
        });
        consumer.start();
        System.out.println("Consumer Started");
    }
}

相关文章

  • rocketmq的使用要点

    订阅方式 消息队列 RocketMQ 支持以下两种订阅方式: 不设置的情况下,默认为集群订阅方式 集群订阅: 广播...

  • 2020-07-15 搭建 RocketMQ 服务器最便捷的方法

    最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这...

  • 史上最便捷搭建RocketMQ服务器的方法

    最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这...

  • canal和rocketmq

    canal使用rocketmq做数据同步的问题 因为要保证数据的顺序,所以要使用rocketmq的顺序topic,...

  • 消息队列

    RocketMQ使用/源码分析 http://jm.taobao.org/2017/01/12/rocketmq-...

  • rocketmq启动

    本篇文章主要讲述rocketmq的控制台安装、rocketmq的启动、使用源码测试一、启动rocketmq参考ht...

  • Apache RocketMQ之JMS基本概念及使用

    Apache RocketMQ之JMS基本概念及使用 Apache RocketMQ 系列: Apache Roc...

  • 使用RocketMQ消费消息

    RocketMQ消费端 今天要来跟大家学习怎样使用RocketMQ来进行消息的消费 先简单创建个Maven项目使用...

  • RocketMQ 顺序消息

    背景: 业务使用 RocketMQ 的场景增多,但是有一些消息状态依赖的场景没有考虑顺序正确的使用RocketMQ...

  • rocketmq使用

    应用 rocket-mq有四个概念 consumer producer name-server broker 如果...

网友评论

      本文标题:rocketmq的使用要点

      本文链接:https://www.haomeiwen.com/subject/rzffoqtx.html