开发者社区 > 云原生 > 云消息队列 > 正文

消息队列RocketMQ版如何发送消息以及发送消息的步骤是什么?

消息队列RocketMQ版如何发送消息以及发送消息的步骤是什么?

展开
收起
Lee_tianbai 2021-01-01 14:48:11 1327 0
1 条回答
写回答
取消 提交回答
  • 您可以通过以下方式发送消息: 控制台发送消息:用于快速验证 Topic 资源的可用性,主要用作测试。 1. 在控制台左侧导航栏,单击 Topic 管理。 2. 在 Topic 管理页面,找到您刚刚创建的 Topic,单击右侧操作列的发送。 3. 在发送消息对话框中的 Message Body 一栏,输入消息的具体内容,单击 确定。 控制台会返回消息发送成功通知以及相应的 Message ID。 调用 SDK 发送消息:用于生产环境下使用消息队列 RocketMQ 版。 下文以调用 TCP Java SDK 为例进行说明。 调用 TCP Java SDK 发送消息 1. 通过以下任一方式引入依赖: ● Maven 方式引入依赖: image.png

    ● 下载依赖 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 版服务端存储这条消息的时间。如果查询到此消息,表示消息已经成功发送到服务端。

    2021-01-01 14:49:40
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载