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

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

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

展开
收起
Lee_tianbai 2021-01-01 14:48:11 1244 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
    赞同 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

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

    热门文章

    相关电子书

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