tencent cloud

文档反馈

使用 4.0 SDK 收发普通消息

最后更新时间:2024-01-17 17:45:37

    操作场景

    本文以调用 4.0 Java SDK 为例介绍通过开源 SDK 实现消息收发的操作过程,帮助您更好地理解消息收发的完整过程。
    说明
    以 Java 客户端为例说明,其他语言客户端请参见 SDK 文档

    前提条件

    完成资源创建与准备

    操作步骤

    步骤1:安装 Java 依赖库

    在 Java 项目中引入相关依赖,以 Maven 工程为例,在 pom.xml 添加以下依赖:
    <!-- in your <dependencies> block -->
    <dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-client</artifactId>
    <version>4.9.7</version>
    </dependency>
    <dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-acl</artifactId>
    <version>4.9.7</version>
    </dependency>

    步骤2. 生产消息

    // 实例化消息生产者Producer
    DefaultMQProducer producer = new DefaultMQProducer(
    groupName,
    new AclClientRPCHook(new SessionCredentials(accessKey, secretKey)) // ACL权限
    );
    // 设置NameServer的地址,地址就是形如xxx.tencenttdmq.com:8080 这样的接入地址。
    producer.setNamesrvAddr(nameserver);
    // 启动Producer实例
    producer.start();
    for (int i = 0; i < 10; i++) {
    // 创建消息实例,设置topic和消息内容.
    Message msg = new Message(topic_name, ("Hello RocketMQ " + i).getBytes(RemotingHelper.DEFAULT_CHARSET));
    // 发送消息
    SendResult sendResult = producer.send(msg);
    System.out.printf("%s%n", sendResult);
    }

    步骤3. 消费消息

    以下代码示例以 Push Consumer 为例,其他的可以参考更详细 4.x 的使用文档。
    // 实例化消费者
    DefaultMQPushConsumer pushConsumer = new DefaultMQPushConsumer(
    groupName,
    new AclClientRPCHook(new SessionCredentials(accessKey, secretKey))); //ACL权限
    // 设置NameServer的地址
    pushConsumer.setNamesrvAddr(nameserver);
    // 订阅topic
    pushConsumer.subscribe(topic_name, "*");
    // 注册回调实现类来处理从broker拉取回来的消息
    pushConsumer.registerMessageListener((MessageListenerConcurrently) (msgs, context) -> {
    // 消息处理逻辑
    System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), msgs);
    // 标记该消息已经被成功消费, 根据消费情况,返回处理状态
    return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
    });
    // 启动消费者实例
    pushConsumer.start();

    步骤4. 查看消息详情

    发送完成消息后会得到一个消息ID (messageID),开发者可以在 “消息查询” 页面查询刚刚发送的消息,如下图所示;并且可以查看特定消息的详情和轨迹等信息,详情参见 消息查询
    
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持