Jika Anda ingin menggunakan fitur tertentu dari ApsaraMQ for RocketMQ, seperti pesan terurut dan pesan transaksional dalam aplikasi cloud, Anda dapat menggunakan aturan masuk atau keluar untuk bertukar data antara ApsaraMQ for MQTT dan ApsaraMQ for RocketMQ. Topik ini menjelaskan cara mengekspor data dari ApsaraMQ for MQTT ke ApsaraMQ for RocketMQ.
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 mengekspor data dari ApsaraMQ for MQTT ke ApsaraMQ for RocketMQ melalui Internet menggunakan SDK for Java.
Dalam skenario ini, Anda dapat menggunakan SDK sumber terbuka pihak ketiga untuk berbagai bahasa pemrograman guna mengirim dan menerima pesan. Untuk informasi lebih lanjut, lihat Unduh SDK.

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. Umumnya, 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). Umumnya, 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 kesalahan 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 disetel 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, serta topik dan grup telah dikonfigurasi pada instansinya. Untuk informasi lebih lanjut, lihat Buat Sumber Daya.
Instansi ApsaraMQ for RocketMQ telah dibuat, serta topik dan grup telah dikonfigurasi pada instansinya. Untuk informasi lebih lanjut, lihat Langkah 2: Buat Sumber Daya.
Anda dapat menggunakan aturan keluar data dari ApsaraMQ for MQTT untuk mengekspor data hanya ke instansi ApsaraMQ for RocketMQ versi 4.x.
Anda tidak dapat menggunakan aturan keluar data dari ApsaraMQ for MQTT lintas wilayah. Saat membuat aturan keluar data, pastikan bahwa sumber daya ApsaraMQ for MQTT dan ApsaraMQ for RocketMQ berada di wilayah yang sama.
1. Buat aturan keluar 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. Pada 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.
Dalam wizard Create Rule, lakukan langkah-langkah berikut:
Pada langkah Konfigurasikan Informasi Dasar, masukkan ID aturan dan pilih Data Keluar untuk parameter Jenis Aturan.

Pada langkah Konfigurasikan Sumber Aturan, pilih topik yang telah dibuat pada instansi ApsaraMQ for MQTT.

Pada langkah Konfigurasikan Tujuan Aturan, pilih instansi ApsaraMQ for RocketMQ yang telah dibuat dan topik yang telah dibuat pada instansi tersebut.

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, dan 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 MQ4IoTSendMessageToRocketMQ.java berisi kode untuk mengirim pesan menggunakan ApsaraMQ for MQTT dan menerima pesan menggunakan ApsaraMQ for RocketMQ. Anda harus menentukan parameter untuk sumber daya ApsaraMQ for MQTT dan ApsaraMQ for RocketMQ berdasarkan komentar dalam kode.
3. Verifikasi hasil
Anda dapat mengeksekusi fungsi utama di kelas MQ4IoTSendMessageToRocketMQ.java dan kemudian menggunakan salah satu metode berikut untuk memverifikasi pengiriman dan konsumsi pesan.
Gunakan kode
Jika kode serupa dengan kode pada gambar berikut ditampilkan, pesan dikirim oleh ApsaraMQ for MQTT dan dikonsumsi oleh ApsaraMQ for RocketMQ.

Gunakan konsol
Periksa Apakah Pesan Dikirim. Buka halaman detail instansi di konsol ApsaraMQ for MQTT dan klik Query Jejak Pesan di panel navigasi sebelah kiri. Pada halaman Query Jejak Pesan, periksa apakah pesan dikirim menggunakan ID grup dan ID perangkat.

Periksa Apakah Pesan Dikonsumsi. Buka halaman detail instansi di konsol ApsaraMQ for RocketMQ dan klik Message Query di panel navigasi sebelah kiri. Pada halaman Query Pesan, periksa apakah pesan diteruskan ke ApsaraMQ for RocketMQ berdasarkan topik, seperti yang ditunjukkan pada gambar berikut.

Klik Message Trace di kolom Actions pesan yang diquery. Jika informasi serupa dengan informasi pada gambar berikut ditampilkan, pesan dikonsumsi.
