阿里云RocketMQ—手把手带你体验云消息队列RocketMQ

阿里云产品测评-RocketMQ

没有试用过的朋友可以点击免费领取资源,跟我一起进入实践!花两分钟完成任务就有机会领取10元猫超卡!
在这里插入图片描述目前还有邀好友参与试用,了解评测活动,即可加入挑战!
阿里云RocketMQ官方活动入口
在这里插入图片描述

今天我对阿里的又一产品进行了深度测评(RocketMQ)。

一、上手实操

1.付费或者免费开通RocketMQ

云消息队列 RocketMQ 版是阿里云推出的一款基于 Apache RocketMQ 的分布式消息处理系统,可满足互联网分布式应用的微服务异步解耦、流式数据处理和事件驱动处理等需求,提供高可用、高可靠、低延迟和高并发的核心能力。
在这里插入图片描述

2.进入控制台查看:

在这里插入图片描述

3.实例列表如下:

在这里插入图片描述

4.创建 Topic,填写对应的配置

Topic 是指消息队列中消息的分类,消息队列中的消息会按照 Topic 进行分类,不同的 Topic 中的消息不会混杂在一起。通过 Topic,可以实现消息的精确查找和过滤,提高消息的利用率和灵活性。例如,可以创建一个 Topic 用于处理用户订单信息,另一个 Topic 用于处理用户行为统计信息,从而实现消息的分类和分发。
在这里插入图片描述

5.消息一键收发体验

消息一键收发体验会提供一些便捷的功能,如自动保存、一键发送、一键接收、消息过滤等。使用这些功能,可以方便地实现消息的交互和传递,提高工作效率。另外,消息一键收发体验还可以提供一些安全功能,如消息加密、身份验证等,以确保消息的安全性。

在这里插入图片描述

消息详情如下:
在这里插入图片描述

6.创建 Group

Group 是指消息队列中消息的分组方式,消息队列中的消息可以按照 Group 进行分组,同一个 Group 中的消息会被一起发送到队列中。通过 Group,可以实现消息的批量发送和批量接收,提高消息的传输效率和稳定性。例如,可以创建一个 Group 用于处理用户订单信息,另一个 Group 用于处理用户行为统计信息,从而实现消息的批量发送和批量接收。
在这里插入图片描述
消息补发工具
在这里插入图片描述

二、体验场景:消息一键收发体验

消息一键收发体验官方源码如下:

package com.aliyun.openservices;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import org.apache.rocketmq.client.apis.producer.SendReceipt;
import org.apache.rocketmq.client.apis.producer.Producer;
import org.apache.rocketmq.client.apis.ClientServiceProvider;
import org.apache.rocketmq.client.apis.ClientConfiguration;
import org.apache.rocketmq.client.apis.ClientConfigurationBuilder;
import org.apache.rocketmq.client.apis.ClientException;
import org.apache.rocketmq.client.apis.StaticSessionCredentialsProvider;
import org.apache.rocketmq.client.apis.message.MessageBuilder;

public class Demo {
    
    
    /**
     * 实例接入点,从控制台实例详情页的接入点页签中获取。
     * 如果是在阿里云内网 VPC 访问,建议填写 VPC 接入点。
     * 如果是在本地公网访问,或者是线下 IDC 环境访问,可以使用公网接入点。使用公网接入点访问,必须开启实例的公网访问功能。
     */
    public static final String ENDPOINT = "rmq-cn-uax3azb880h-vpc.cn-hangzhou.rmq.aliyuncs.com:8080";
    public static final String TOPIC_NAME = "xiaoz";
    public static final String TAG = "";
    public static final String KEY = "";
    public static final String BODY = "good";

    public static void main(String[] args) throws ClientException, IOException {
    
    
        ClientServiceProvider provider = ClientServiceProvider.loadService();
        ClientConfigurationBuilder configBuilder = ClientConfiguration.newBuilder().setEndpoints(ENDPOINT);

        /**
         * 如果是使用公网接入点访问,configuration 还需要设置实例的用户名和密码。用户名和密码在控制台实例详情页获取。
         * 如果是在阿里云内网 VPC 中访问,无需填写该配置,服务端会根据内网 VPC 信息智能获取。
         */
        // configBuilder.setCredentialProvider(
        //  new StaticSessionCredentialsProvider("Instance UserName", "Instance Password")
        // );
        ClientConfiguration configuration = configBuilder.build();

        /**
         * 初始化 Producer 时直接配置需要使用的 Topic 列表,实现提前检查错误配置、拦截非法配置启动。
         * 针对非事务消息 Topic,也可以不配置,服务端会动态检查消息的 Topic 是否合法。
         * 注意!!!事务消息 Topic 必须提前配置,以免事务消息回查接口失败,具体原理请参见事务消息。
         */
        Producer producer = provider.newProducerBuilder()
                .setClientConfiguration(configuration)
                .setTopics(TOPIC_NAME)
                .build();

        MessageBuilder builder = provider.newMessageBuilder()
                // 为当前消息设置 Topic。
                .setTopic(TOPIC_NAME)
                // 消息体。
                .setBody(BODY.getBytes(StandardCharsets.UTF_8));

        if (!KEY.isEmpty()) {
    
    
            // 设置消息索引键,可根据关键字精确查找某条消息。
            builder.setKeys(KEY);
        }

        if (!TAG.isEmpty()) {
    
    
            // 设置消息 Tag,用于消费端根据指定 Tag 过滤消息。
            builder.setTag(TAG);
        }

        // 配置消息的自定义属性
        // builder.addProperty("key", "value");

        try {
    
    
            // 发送消息,需要关注发送结果,并捕获失败等异常。
            final SendReceipt sendReceipt = producer.send(builder.build());
            System.out.println("Send mq message success! Topic is:" + TOPIC_NAME + " msgId is: "
                    + sendReceipt.getMessageId().toString());
        } catch (Throwable t) {
    
    
            System.out.println("Send mq message failed! Topic is:" + TOPIC_NAME);
            t.printStackTrace();
        }
        
        // 如果不需要再使用,可关闭该进程。
        producer.close();
    }
}

我的实例:
在这里插入图片描述
消息轨迹:
在这里插入图片描述
消息详情如下:
在这里插入图片描述

2.1 RocketMQ实际使用感受

新手体验:

1)产品使用过程:通过简单的操作,即可实现消息的快速收发,方便快捷,易于上手。
2)学习建议:建议用户多了解一些关于消息队列的基础知识,以便更好地使用消息一键收发体验。

进阶体验:

1)源码感受:通过对源码的了解,可以更深入地了解消息一键收发体验的实现原理,提高对消息队列的理解。
2)场景应用:倾向于在需要快速交互和传递消息的场景下使用该功能,如在线教育、电商平台等。这样可以提高工作效率,提升用户体验。
3)优势:简单易用、快速高效、方便实用。 有待改进的方面:可能需要进一步优化消息过滤等功能,提供更多的定制化选项,以满足不同用户的需求。

2.2 使用场景倾向

我会倾向于在需要快速交互和传递消息的场景下使用RocketMQ的该功能,如在线教育、电商平台等。这样可以提高工作效率,提升用户体验。此外,使用RocketMQ可以提高消息传输的稳定性和可靠性,降低消息丢失和延迟的风险,从而提高系统的可用性和可扩展性,为公司带来更多的收益和价值。

2.3 体验有感:优势和改进建议

该场景的优势主要有以下几点:
● 简单易用:通过简单的操作即可实现消息的快速收发,方便快捷,易于上手。
● 快速高效:可以实现消息的批量发送和批量接收,提高消息传输的效率和稳定性。
● 方便实用:可以提供一些便捷的功能,如自动保存、一键发送、一键接收、消息过滤等,提高工作效率。
有待改进的方面主要是:
● 可定制化:可能需要进一步优化消息过滤等功能,提供更多的定制化选项,以满足不同用户的需求。
● 安全性:可以考虑增加一些安全功能,如消息加密、身份验证等,以确保消息的安全性。

对RocketMQ感兴趣的朋友可以在官方链接中试用:
阿里云RocketMQ官方入口

猜你喜欢

转载自blog.csdn.net/weixin_52908342/article/details/131773048