全部产品
Search
文档中心

云消息队列 RabbitMQ 版:通过公网接入点访问开源身份验证实例

更新时间:Jul 15, 2026

本文补充说明采用开源身份验证和权限管理方式的云消息队列 RabbitMQ 版实例通过公网接入时,客户端需要额外配置的实例 ID。

适用范围

本文适用于同时满足以下条件的实例:

  • 创建实例时选择了开源身份验证和权限管理方式。

  • 实例版本为以下任一版本:

    • Serverless系列

      • (独享)预留+弹性

      • (共享)预留+弹性

      • (共享)按累积量

    • 预付费企业版

    • 预付费铂金版

  • 实例详情页面已显示公网接入点。

各版本是否需要客户端传入实例 ID,请参见下文。

前提条件

重要

通过公网访问实例时必须启用公网 IP 白名单,并将客户端实际公网出口 IP 地址或 CIDR 地址段加入白名单。仅白名单范围内的客户端可以访问实例。

连接前,请完成以下配置:

  1. 在实例的用户和权限管理页面创建自定义用户名和密码,并为用户授予目标 Vhost 及相关资源的操作权限。具体操作,请参见用户和权限管理

  2. 将客户端的实际公网出口 IP 地址或 CIDR 地址段加入实例的公网 IP 白名单。具体操作,请参见白名单

  3. 实例详情页面获取实例 ID 和公网接入点。请直接复制控制台展示的公网接入点,不要自行拼接域名。

客户端设置实例 ID

公网接入时,不同版本的客户端配置要求如下:

实例系列

具体版本

是否需要传入实例 ID

说明

Serverless系列

(独享)预留+弹性

服务端可以自动识别目标实例。

Serverless系列

(共享)预留+弹性

客户端必须通过 AMQP Client Properties 指定目标实例。

Serverless系列

(共享)按累积量

客户端必须通过 AMQP Client Properties 指定目标实例。

预付费系列

铂金版

服务端可以自动识别目标实例。

预付费系列

企业版

客户端必须通过 AMQP Client Properties 指定目标实例。

Java 配置示例

使用 Serverless 系列的(共享)预留+弹性或(共享)按累积量规格,或者使用预付费企业版时,按照步骤三:调用SDK收发消息配置公网接入点、用户名、密码和 Vhost 后,在调用 newConnection() 前增加以下配置:

String instanceId = "amqp-cn-xxxxxxxx";

// factory 已按常规方式配置公网接入点、用户名、密码和 Vhost。
Map<String, Object> clientProperties =
        new HashMap<String, Object>(factory.getClientProperties());
clientProperties.put("aliyun_rabbitmq_instance_id", instanceId);
factory.setClientProperties(clientProperties);

Connection connection = factory.newConnection();

注意事项:

  • aliyun_rabbitmq_instance_id 的值必须是控制台展示的实例 ID,而不是公网接入点。

  • (共享)预留+弹性(共享)按累积量和预付费企业版必须在创建 Connection 前设置该属性。

  • 复制并保留 factory.getClientProperties() 中的默认属性,避免覆盖 Java Client 自带的客户端信息。

  • (独享)预留+弹性和预付费铂金版无需设置该属性;如果主动设置,属性值必须与当前实例 ID 一致。

连接失败时检查

如果公网连接被拒绝或返回 AccessAccountDataError 错误,请依次确认:

  1. 客户端实际公网出口 IP 已加入目标实例的公网 IP 白名单。

  2. 使用(共享)预留+弹性(共享)按累积量或预付费企业版时,确认 aliyun_rabbitmq_instance_id 已设置且与目标实例 ID 完全一致;(独享)预留+弹性和预付费铂金版无需设置该属性。

  3. 自定义用户名和密码正确,并且用户已获得目标 Vhost 的访问权限。

  4. 客户端配置的是实例的公网接入点,而不是 OpenAPI 服务接入地址。

网络超时、资源权限或常规 SDK 配置问题,请参见连接失败的可能原因及解决办法