操作场景
本文以调用 4.0 Java SDK 为例介绍通过开源 SDK 实现消息收发的操作过程,帮助您更好地理解消息收发的完整过程。
说明
以 Java 客户端为例说明,其他语言客户端请参见 SDK 文档。
前提条件
完成资源创建与准备
下载 Demo
操作步骤
步骤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. 生产消息
// 实例化消息生产者ProducerDefaultMQProducer producer = new DefaultMQProducer(groupName,new AclClientRPCHook(new SessionCredentials(accessKey, secretKey)) // ACL权限,ak sk可以在控制台“权限管理”页面获取);// 设置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权限,ACL权限,ak sk可以在控制台“权限管理”页面获取// 设置NameServer的地址,地址就是形如xxx.tencenttdmq.com:8080 这样的接入地址。pushConsumer.setNamesrvAddr(nameserver);// 订阅topicpushConsumer.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. 查看消息详情

