Jika Anda ingin menggunakan fitur tertentu dari ApsaraMQ for RocketMQ, seperti pesan terurut dan pesan transaksional, dalam aplikasi cloud, Anda dapat menggunakan aturan arah masuk atau arah keluar untuk bertukar data antara ApsaraMQ for MQTT dan ApsaraMQ for RocketMQ. Topik ini menjelaskan cara mengimpor data dari ApsaraMQ for RocketMQ ke ApsaraMQ for MQTT.
Informasi latar belakang
ApsaraMQ for MQTT mendukung SDK cloud. Anda dapat menghubungkan aplikasi cloud ke broker ApsaraMQ for MQTT untuk mengirim dan menerima pesan menggunakan SDK cloud. Untuk informasi lebih lanjut tentang penggunaan SDK cloud, lihat Ikhtisar.
ApsaraMQ for MQTT juga mendukung pertukaran data antara ApsaraMQ for MQTT dan layanan Alibaba Cloud lainnya. Saat ini, Anda hanya dapat bertukar data antara ApsaraMQ for MQTT dan ApsaraMQ for RocketMQ.
Topik ini menjelaskan cara mengimpor data dari ApsaraMQ for RocketMQ ke ApsaraMQ for MQTT melalui Internet menggunakan SDK for Java.

Akses jaringan
ApsaraMQ for MQTT menyediakan Public Endpoint dan VPC Endpoint.
Public Endpoint adalah alamat IP yang digunakan untuk mengakses ApsaraMQ for MQTT melalui Internet. Dalam banyak kasus, endpoint publik digunakan dalam skenario IoT dan mobile Internet.
VPC Endpoint adalah alamat IP yang digunakan untuk mengakses ApsaraMQ for MQTT di private virtual cloud (VPC). Dalam banyak kasus, endpoint VPC digunakan oleh aplikasi cloud untuk terhubung ke ApsaraMQ for MQTT.
Jika Anda ingin menggunakan endpoint untuk menghubungkan klien ke ApsaraMQ for MQTT, gunakan nama domain alih-alih alamat IP karena alamat IP berubah secara dinamis. Tim teknis ApsaraMQ for MQTT tidak bertanggung jawab atas titik kegagalan dan kerugian langsung atau tidak langsung dalam skenario berikut:
Anda menggunakan alamat IP untuk mengakses klien ke ApsaraMQ for MQTT. Setelah tim teknis ApsaraMQ for MQTT memperbarui resolusi nama domain, alamat IP asli menjadi tidak valid.
Kebijakan firewall pada alamat IP ditetapkan di jaringan tempat klien Anda berjalan. Setelah tim teknis ApsaraMQ for MQTT memperbarui resolusi nama domain, alamat IP baru diblokir karena kebijakan firewall.
Prasyarat
Lingkungan pengembangan terintegrasi (IDE) telah diinstal. Untuk informasi lebih lanjut, lihat IDE. Anda dapat menggunakan IntelliJ IDEA atau Eclipse. Dalam contoh ini, IntelliJ IDEA digunakan.
Java 8 atau 11 telah diinstal. Untuk informasi lebih lanjut, lihat Unduhan Java.
Instansi ApsaraMQ for MQTT telah dibuat, dan topik serta grup telah dibuat di instansinya. Untuk informasi lebih lanjut, lihat Buat Sumber Daya.
Instansi ApsaraMQ for RocketMQ telah dibuat, dan topik serta grup telah dibuat di instansinya. Untuk informasi lebih lanjut, lihat Langkah 2: Buat Sumber Daya.
Anda dapat menggunakan aturan arah masuk data dari ApsaraMQ for MQTT untuk mengimpor data hanya dari instansi ApsaraMQ for RocketMQ versi 4.x.
Anda tidak dapat menggunakan aturan arah masuk data dari ApsaraMQ for MQTT lintas wilayah. Saat membuat aturan arah masuk data, pastikan bahwa sumber daya ApsaraMQ for MQTT dan ApsaraMQ for RocketMQ berada di wilayah yang sama.
1. Buat aturan arah masuk data
Masuk ke Konsol ApsaraMQ for MQTT. Di panel navigasi sebelah kiri, klik Instances.
Di bilah navigasi atas, pilih wilayah tempat instansi yang ingin Anda kelola berada. Di halaman Instansi, klik nama instansi untuk pergi ke halaman Instance Details.
Di panel navigasi sebelah kiri, klik Rules. Di sudut kiri atas halaman Aturan, klik Create Rule.
Di panduan Create Rule, lakukan langkah-langkah berikut:
Di langkah Konfigurasikan Informasi Dasar, tentukan ID aturan dan pilih Data Masuk untuk parameter Tipe Aturan.

Di langkah Konfigurasikan Sumber Aturan, pilih instansi ApsaraMQ for RocketMQ yang telah dibuat dan topik yang telah dibuat di instansi tersebut.

Di langkah Konfigurasikan Tujuan Aturan, pilih topik yang telah dibuat di instansi ApsaraMQ for MQTT.

2. Siapkan kode uji
2.1 Unduh kode sampel
Unduh proyek demo mqtt-java-demo dan ekstrak paket proyek demo ke folder di mesin lokal Anda.
Di proyek demo yang diekstrak, temukan folder lmq-java-demo, impor folder ke IntelliJ IDEA, lalu konfirmasi apakah dependensi berikut termasuk dalam file pom.xml:
<dependencies> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.70</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency> <dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.2.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.83</version> </dependency> <dependency> <groupId>com.aliyun.openservices</groupId> <artifactId>ons-client</artifactId> <version>1.8.5.Final</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-onsmqtt</artifactId> <version>1.0.3</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.0</version> </dependency> </dependencies>Konfigurasikan kredensial akses.
Peroleh pasangan AccessKey. Untuk informasi tentang cara memperoleh pasangan AccessKey, lihat Buat Pasangan AccessKey.
Konfigurasikan variabel lingkungan. Nama variabel lingkungan untuk ID AccessKey yang digunakan untuk mengakses ApsaraMQ for MQTT adalah MQTT_AK_ENV, dan nama variabel lingkungan untuk Rahasia AccessKey yang digunakan untuk mengakses ApsaraMQ for MQTT adalah MQTT_SK_ENV. Untuk informasi tentang cara mengonfigurasi variabel lingkungan, lihat Konfigurasikan Kredensial Akses.
2.2 Konfigurasikan kode untuk perpesanan
Kelas RocketMQSendMessageToMQ4IoT.java berisi kode untuk mengirim pesan menggunakan ApsaraMQ for RocketMQ dan menerima pesan menggunakan ApsaraMQ for MQTT. Anda harus menentukan parameter untuk sumber daya ApsaraMQ for RocketMQ dan ApsaraMQ for MQTT berdasarkan komentar dalam kode.
Saat menguji perpesanan, Anda dapat mengomentari kode terkait pengiriman pesan point-to-point (P2P). Contoh kode:
3. Verifikasi hasil
Anda dapat memanggil fungsi utama di kelas RocketMQSendMessageToMQ4IoT.java dan kemudian menggunakan salah satu metode berikut untuk memverifikasi pengiriman dan konsumsi pesan.
Gunakan kode
Jika kode serupa dengan kode berikut ditampilkan, pesan dikirim oleh ApsaraMQ for RocketMQ dan dikonsumsi oleh ApsaraMQ for MQTT.

Gunakan konsol
Periksa Apakah Pesan Dikirim. Buka halaman detail instansi di konsol ApsaraMQ for RocketMQ lalu klik Message Query di panel navigasi sebelah kiri. Di halaman Kueri Pesan, periksa apakah pesan dikirim berdasarkan topik dan ID pesan.

Periksa Apakah Pesan Dikonsumsi. Buka halaman detail instansi di konsol ApsaraMQ for MQTT dan klik Message trace query di panel navigasi sebelah kiri. Di halaman Kueri Jejak Pesan, periksa apakah pesan dikonsumsi berdasarkan ID pesan.
