消息队列RocketMQ版如何发送消息以及发送消息的步骤是什么?
您可以通过以下方式发送消息: 控制台发送消息:用于快速验证 Topic 资源的可用性,主要用作测试。 1. 在控制台左侧导航栏,单击 Topic 管理。 2. 在 Topic 管理页面,找到您刚刚创建的 Topic,单击右侧操作列的发送。 3. 在发送消息对话框中的 Message Body 一栏,输入消息的具体内容,单击 确定。 控制台会返回消息发送成功通知以及相应的 Message ID。 调用 SDK 发送消息:用于生产环境下使用消息队列 RocketMQ 版。 下文以调用 TCP Java SDK 为例进行说明。 调用 TCP Java SDK 发送消息 1. 通过以下任一方式引入依赖: ● Maven 方式引入依赖:
● 下载依赖 JAR 包: 2. 根据以下说明设置相关参数,运行示例代码:
import com.aliyun.openservices.ons.api.Message;
import com.aliyun.openservices.ons.api.Producer;
import com.aliyun.openservices.ons.api.SendResult;
import com.aliyun.openservices.ons.api.ONSFactory;
import com.aliyun.openservices.ons.api.PropertyKeyConst;
import java.util.Properties;
public class ProducerTest {
public static void main(String[] args) {
Properties properties = new Properties();
// 您在控制台创建的 Group ID
properties.put(PropertyKeyConst.GROUP_ID, "XXX");
// 鉴权用 AccessKeyId,在阿里云服务器管理控制台创建
properties.put(PropertyKeyConst.AccessKey,"XXX");
// 鉴权用 AccessKeySecret,在阿里云服务器管理控制台创建
properties.put(PropertyKeyConst.SecretKey, "XXX");
// 设置 TCP 接入域名,进入控制台的实例详情页面,在页面上方选择实例后,在实例信息中的“获取
接入点信息”区域查看
properties.put(PropertyKeyConst.NAMESRV_ADDR,"XXX");
Producer producer = ONSFactory.createProducer(properties);
// 在发送消息前,必须调用 start 方法来启动 Producer,只需调用一次即可
producer.start();
// 循环发送消息
while(true){
Message msg = new Message( //
// 在控制台创建的 Topic,即该消息所属的 Topic 名称
"TopicTestMQ",
// Message Tag,
// 可理解为 Gmail 中的标签,对消息进行再归类,方便 Consumer 指定过滤条件在消息队列
RocketMQ 版服务器过滤
"TagA",
// Message Body
// 任何二进制形式的数据,消息队列 RocketMQ 版不做任何干预,
// 需要 Producer 与 Consumer 协商好一致的序列化和反序列化方式
"Hello MQ".getBytes());
// 设置代表消息的业务关键属性,请尽可能全局唯一,以方便您在无法正常收到消息情况下,可通过控
制台查询消息并补发
// 注意:不设置也不会影响消息正常收发
msg.setKey("ORDERID_100");
// 发送消息,只要不抛异常就是成功
// 打印 Message ID,以便用于消息发送状态查询
SendResult sendResult = producer.send(msg);
System.out.println("Send Message success. Message ID is: " + sendResult.
getMessageId());
}
// 在应用退出前,可以销毁 Producer 对象
// 注意:如果不销毁也没有问题
producer.shutdown();
}
}
查看消息是否发送成功 消息发送后,您可以在控制台查看消息发送状态,步骤如下: 1. 在控制台左侧导航栏,选择消息查询 > 按 Message ID 查询。 2. 在搜索框中输入发送消息后返回的 Message ID,单击搜索查询消息发送 状态。 储存时间表示消息队列 RocketMQ 版服务端存储这条消息的时间。如果查询到此消息,表示消息已经成功发送到服务端。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/