ApsaraMQ for RocketMQ mendukung HTTP SDK untuk berbagai bahasa pemrograman dan memungkinkan akses dari Internet. Topik ini menjelaskan catatan rilis untuk HTTP SDK dalam berbagai bahasa pemrograman.
Dukungan untuk berbagai bahasa pemrograman
ApsaraMQ for RocketMQ mendukung protokol RESTful HTTP dan menyediakan SDK untuk tujuh bahasa pemrograman. HTTP SDK terus dikembangkan agar selaras dengan fitur yang disediakan oleh TCP SDK. Untuk informasi tentang perbedaan antara fitur HTTP dan TCP SDK, lihat topik-topik berikut:
Catatan penggunaan
Melalui HTTP, konsumen dapat menggunakan mode polling panjang atau pendek untuk mengonsumsi pesan yang diperoleh dari broker ApsaraMQ for RocketMQ.
Polling Panjang: Konsumen mengirim permintaan ke broker untuk memperoleh pesan dalam topik tertentu. Jika tidak ada pesan dalam topik, broker menangguhkan permintaan dan mengembalikan respons hingga pesan diproduksi dalam topik atau periode yang ditentukan untuk polling panjang berakhir.
Polling Pendek: Jika tidak ada pesan dalam topik, broker segera mengembalikan respons. Setelah klien menerima respons, klien secara berulang memulai permintaan langganan.
Berikut adalah metode konfigurasi:
Polling Panjang: Saat Anda memulai permintaan langganan, atur parameter
waitSecondske nilai lebih besar dari 0. Nilai maksimumnya adalah 30 detik.Polling Pendek: Saat Anda memulai permintaan langganan, atur parameter
waitSecondske 0 atau biarkan parameter tersebut tidak ditentukan.
Untuk informasi lebih lanjut, lihat Operasi untuk Mengonsumsi Pesan.
Jika Anda menggunakan mode polling pendek dan tidak ada pesan yang diproduksi dalam topik, sejumlah besar permintaan tidak valid mungkin dihasilkan. Anda akan dikenakan biaya panggilan API untuk permintaan ini. Untuk mengurangi jumlah permintaan langganan tidak valid dan menghemat biaya, kami sarankan Anda menggunakan mode polling panjang dan meningkatkan waktu tunggu untuk polling panjang. Untuk informasi tentang cara menghitung biaya panggilan API, lihat Biaya Panggilan API.
PentingUntuk memastikan stabilitas layanan dan ketepatan waktu konsumsi, sistem secara otomatis mengubah mode polling panjang menjadi mode polling pendek jika jumlah konsumen yang terhubung ke instance ApsaraMQ for RocketMQ melalui HTTP melebihi 100. Untuk mencegah peningkatan biaya akibat jumlah permintaan tidak valid yang terlalu besar setelah sistem beralih ke mode polling pendek, pastikan untuk membatasi jumlah koneksi konsumen.
Dukungan akses dari HTTP SDK merupakan fitur tambahan dari ApsaraMQ for RocketMQ. Kluster Apache RocketMQ yang dikelola sendiri tidak menyediakan fitur ini dan tidak dapat diakses menggunakan HTTP SDK.
Pastikan bahwa sumber daya yang ingin Anda akses berada di wilayah yang sama dengan titik akhir HTTP yang Anda gunakan.
Sebagai contoh, jika instance ApsaraMQ for RocketMQ Anda berada di wilayah China (Hangzhou), Anda hanya dapat menggunakan titik akhir di wilayah China (Hangzhou) untuk mengakses instance tersebut. Perhatikan poin-poin berikut:
Jika klien Anda berada di wilayah China (Hangzhou), gunakan titik akhir internal HTTP dari instance untuk mengakses sumber daya demi pengalaman pengguna yang optimal.
Jika klien Anda berada di wilayah lain selain China (Hangzhou), pastikan bahwa klien dapat terhubung ke Internet dan gunakan titik akhir publik HTTP dari instance untuk mengakses sumber daya.
Pesan dapat ditransmisikan antara klien TCP dan HTTP. Karena serialisasi XML digunakan untuk HTTP, atribut pesan, tubuh, tag, dan kunci harus mematuhi aturan XML.
CatatanUntuk informasi lebih lanjut tentang aturan XML, lihat Sintaks XML. Anda juga dapat menggunakan alat pihak ketiga XML Validator untuk memverifikasi apakah sintaks XML Anda sesuai dengan aturan.
Jika karakter yang tidak sesuai dengan aturan XML terkandung, masalah berikut mungkin terjadi:
Jika pesan dikirim melalui HTTP, pengiriman akan gagal.
Jika pesan dikirim melalui TCP dan dikonsumsi melalui HTTP, konsumsi akan gagal.
Anda dapat mengkodekan atau mendekode pesan yang ingin Anda kirim menggunakan Base64 untuk mengirim dan menerima pesan yang tidak sesuai dengan aturan XML.