云上的RabbitMQ&AMQP来监听为什么会时有时无?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云提供的 云消息队列 RabbitMQ 版 是一种基于开源 RabbitMQ 的高级消息队列服务,专为解决企业级消息传递需求而设计。以下从多个方面为您详细介绍其功能、优势及使用方法。
兼容开源
解决开源痛点
Serverless 模式
功能增强
全模型支持
Queue 模式
Exchange 类型
Vhost 虚拟主机
运维配套
在迁移至云消息队列 RabbitMQ 版之前,需进行以下技术评估: - 功能差异:云消息队列 RabbitMQ 版与开源 RabbitMQ 在功能、性能、Exchange 和 Queue 等方面存在差异,请确认是否符合您的需求。 - 限制评估:云消息队列 RabbitMQ 版对集群、接口调用和字符长度进行了限制,请确保这些限制能满足您的业务需求。
以 VirtualHost 为最小迁移单位,使用 Shovel 插件完成数据迁移: 1. 梳理 VirtualHost 下的所有生产者和消费者。 2. 修改 URL、用户名和密码配置,使其访问云消息队列 RabbitMQ 版服务。 3. 开启 Shovel 插件,创建临时同步任务,将堆积的消息转发至云上实例。 4. 观察队列堆积情况,确认数据迁移完成后删除临时任务。
在 Java 工程中添加以下依赖:
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.5.0</version>
</dependency>
通过 AccessKey ID 和 AccessKey Secret 生成静态用户名和密码: 1. 登录云消息队列 RabbitMQ 版控制台,选择目标实例。 2. 在左侧导航栏选择 静态用户名密码,点击 创建用户名密码。 3. 输入 AccessKey ID 和 AccessKey Secret,生成用户名和密码。
使用 ConnectionFactory
启动客户端与服务端的连接:
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
public class RabbitMQClient {
public static void main(String[] args) throws Exception {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("your-rabbitmq-host");
factory.setUsername("your-username");
factory.setPassword("your-password");
Connection connection = factory.newConnection();
System.out.println("Connected to RabbitMQ!");
}
}
前提条件: - 已创建云消息队列 RabbitMQ 版实例。 - 实例下已创建 Vhost、Queue 和 Exchange。 - 已开通 ARMS Prometheus 监控服务。
操作步骤: 1. 登录控制台,选择目标实例。 2. 在左侧导航栏点击 Dashboard。 3. 根据需要指定 Vhost、Exchange、Queue 或时间范围查看指标。
所有指标数据存储在阿里云 Prometheus 服务中,可通过以下步骤获取: 1. 登录 ARMS 控制台,搜索并接入 RabbitMQ 服务。 2. 获取 HTTP API 地址,通过 API 将指标数据接入自建 Grafana。
以上内容详细介绍了云消息队列 RabbitMQ 版的功能、优势、迁移步骤及操作方法,帮助您快速上手并充分利用该服务。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系列产品 Serverless 化。RocketMQ 中文社区:https://rocketmq-learning.com/