Anda perlu melakukan konfigurasi tambahan pada instans tertentu saat mengaksesnya melalui titik akhir publik.
Cakupan penerapan
Topik ini berlaku untuk instans ApsaraMQ for RabbitMQ yang memenuhi semua kondisi berikut:
Instans menggunakan mode otentikasi dan pengelolaan izin open-source. Lihat Open-source auth.
Edisi instance adalah:
Serverless:
(Exclusive) Pay-by-Provisioned-Capacity-and-Elastic-Traffic
(Shared) Pay-by-Provisioned-Capacity-and-Elastic-Traffic
(Shared) Pay-by-Messaging-Request
Subscription:
Enterprise Edition
Enterprise Platinum Edition
Titik akhir publik ditampilkan di halaman Instance Details.
Prasyarat
Sebelum menghubungkan, lengkapi konfigurasi berikut:
Untuk memastikan keamanan akses, Anda harus mengaktifkan daftar putih alamat IP publik saat mengakses instans melalui Internet. Tambahkan alamat IP publik aktual atau Blok CIDR dari klien ke daftar putih tersebut. Hanya klien dalam rentang daftar putih yang dapat mengakses instans.
Di halaman Users and Permissions instans, buat username dan password kustom, lalu berikan izin operasi kepada pengguna tersebut pada vhost target dan resource terkait. Untuk informasi lebih lanjut, lihat Users and Permissions.
Tambahkan alamat IP publik aktual atau Blok CIDR dari klien ke daftar putih alamat IP publik instans. Untuk informasi lebih lanjut, lihat Whitelist.
Di halaman Instance Details, peroleh Instance ID dan titik akhir publik. Salin langsung titik akhir publik yang ditampilkan di Konsol. Jangan menggabungkan nama domain secara manual.
Konfigurasikan Instance ID pada client
Saat menghubungkan melalui titik akhir publik, persyaratan konfigurasi klien berbeda-beda tergantung edisinya:
Seri instans | Edition | Diperlukan Instance ID | Deskripsi |
Serverless | (Exclusive) Pay-by-Provisioned-Capacity-and-Elastic-Traffic | Tidak | Server dapat secara otomatis mengenali instans target. |
Serverless | (Shared) Pay-by-Provisioned-Capacity-and-Elastic-Traffic | Ya | Client harus menentukan instans target melalui AMQP Client Properties. |
Serverless | (Shared) Pay-by-Messaging-Request | Ya | Client harus menentukan instans target melalui AMQP Client Properties. |
Subscription | Enterprise Platinum Edition | Tidak | Server dapat secara otomatis mengenali instans target. |
Subscription | Enterprise Edition | Ya | Client harus menentukan instans target melalui AMQP Client Properties. |
Contoh konfigurasi Java
Jika edisi Anda memerlukan Instance ID (lihat tabel di atas), konfigurasikan titik akhir publik, username, password, dan vhost sesuai petunjuk dalam Use an SDK to send and receive messages. Kemudian, tambahkan konfigurasi berikut sebelum memanggil newConnection():
String instanceId = "amqp-cn-xxxxxxxx";
// Factory telah dikonfigurasi dengan titik akhir publik, username, password, dan 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();Perhatikan hal-hal berikut:
Nilai
aliyun_rabbitmq_instance_idharus berupa Instance ID yang ditampilkan di Konsol, bukan titik akhir publik.Untuk edisi (Shared) Pay-by-Provisioned-Capacity-and-Elastic-Traffic, edisi (Shared) Pay-by-Messaging-Request dari seri Serverless, dan Enterprise Edition dari seri Subscription, Anda harus menyetel properti ini sebelum membuat koneksi.
Salin dan pertahankan properti default dari
factory.getClientProperties()untuk menghindari penimpaan informasi klien bawaan dari klien Java.Edisi (Exclusive) Pay-by-Provisioned-Capacity-and-Elastic-Traffic dari seri Serverless dan Enterprise Platinum Edition dari seri Subscription tidak memerlukan properti ini. Jika Anda menyetel properti tersebut, nilainya harus sesuai dengan Instance ID aktual.
Pemecahan masalah kegagalan koneksi
Jika koneksi publik ditolak, periksa hal-hal berikut secara berurutan:
Verifikasi bahwa alamat IP publik aktual dari klien telah ditambahkan ke daftar putih alamat IP publik instans target.
Jika Anda menggunakan edisi (Shared) Pay-by-Provisioned-Capacity-and-Elastic-Traffic, edisi (Shared) Pay-by-Messaging-Request dari seri Serverless, atau Enterprise Edition dari seri Subscription, verifikasi bahwa
aliyun_rabbitmq_instance_idtelah disetel dan sesuai persis dengan Instance ID target. Edisi (Exclusive) Pay-by-Provisioned-Capacity-and-Elastic-Traffic dan Enterprise Platinum Edition tidak memerlukan properti ini.Verifikasi bahwa username dan password kustom benar serta pengguna memiliki izin akses pada vhost target.
Verifikasi bahwa klien dikonfigurasi dengan titik akhir publik instans, bukan titik akhir layanan OpenAPI.
Untuk masalah terkait timeout jaringan, izin resource, atau konfigurasi SDK umum, lihat Possible causes and solutions for connection failures.