操作场景
本文以调用 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. 生产消息
DefaultMQProducer producer = new DefaultMQProducer(
groupName,
new AclClientRPCHook(new SessionCredentials(accessKey, secretKey))
);
producer.setNamesrvAddr(nameserver);
producer.start();
for (int i = 0; i < 10; i++) {
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)));
pushConsumer.setNamesrvAddr(nameserver);
pushConsumer.subscribe(topic_name, "*");
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),开发者可以在 “消息查询” 页面查询刚刚发送的消息,如下图所示;并且可以查看特定消息的详情和轨迹等信息,详情参见 消息查询 。
本页内容是否解决了您的问题?