阿里云产品测评-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官方入口